Как известно, CSS можно размещать двумя способами: в теге style внутри HTML-страницы и в отдельном файле, подключаемом с помощью тега link. Каждый из этих вариантов имеет свои достоинства и недостатки.
Главный недостаток первого варианта — увеличение объема каждой Web-страницы сайта, что крайне нежелательно для пользователей с модемной или GPRS-связью. Достоинство — страница в процессе загрузки сразу отображается правильно, кроме того, если страница будет сохранена в локальный файл, ее разметка сохранится даже в том случае, если при сохранении была выбрана опция “Только html-файл”. Кроме того, если сайт выполнен на статике, без применения CMS с общим для всех страниц шаблоном или SSI-вставок, то при внесении каких-то изменений в дизайн потрбуется редактировать каждую страницу.
Достоинство второго варианта — уменьшение объема траффика. Но при этом возникают два недостатка: а) до того, как будет подгружен CSS, сайт будет отображаться без стилей вообще (что раздражает некоторых пользователей), б) при сохранении страницы в локальный файл может быть потерян CSS-файл (точнее, каталог, в который помещаются вспомогательные файлы), что опять приведет к неправильному отображению страницы.
Также следует учитывать, что каждое новое обращение к серверу (для загрузки отдельного CSS-файла) — это достаточно большая задержка для пользователей с быстрым каналом связи (если сравнивать со скачиванием одного файла, объем которого равен объему этих двух файлов). Кроме того, если пользователь выставил в настройках броузера “проверять обновление страниц”, то задержка будет возникать при каждой загрузке страницы, а не толкьо при первой (из-за наличия GET-запроса с условием If-modified-since).
Таким образом, если сайт сделан на CMS, и его целевой аудтиторией являются пользователи с хорошими каналами связи (или существует упрощенная версия для PDA-устройств), то вариант со встроенными стилями CSS оказывается более предпочтительным, чем с вынесением их в отдельный файл.