Сокращение времени загрузки страниц с помощью CSS

Несмотря на всё большее распространение широкополосного доступа к Интернету, проблемы скорости загрузки HTML-страниц всё ещё не безразличны многим пользователям Сети, особенно на просторах бывшего Союза. CSS (Cascading Style Sheets) может помочь в этом деле, сэкономив нам время и трафик.

1. Избегайте использования таблиц для разметки страницы
Вот шесть причин, по которым лучше использовать CSS, а не таблицы, для разметки страниц:
Браузеры анализируют таблицы дважды: первый раз для того, чтобы оценить структуру таблицы, и второй — для определения их содержимого.
Таблицы отображаются сразу полностью, а не по мере загрузки.
Таблицы заставляют использовать прозрачные картинки для определения ширины колонок и т.п.
CSS требует гораздо меньше кода, чем перегруженные таблицы.
Весь CSS-код может быть вынесен во внешний файл, который будет грузиться всего один раз и храниться в кэше браузера.
При помощи CSS можно контролировать очерёдность загрузки элементов страницы.
2. Не используйте картинки для отображения текста
Большинство кнопок и надписей можно отобразить при помощи CSS. Взгляните на пример:
a:link.example, a:visited.example, a:active.example {
color:#fff;
background:#f90;
font-size:1.2em;
font-weight:bold;
text-decoration:none;
padding:0.2em;
border:4px #00f outset
}
a:hover.example {
color:#fff;
background:#fa1;
font-size:1.2em;
font-weight:bold;
text-decoration:none;
padding:0.2em;
border:4px #00f inset
Этот CSS определяет простую кнопку, которая меняет свой вид при наведении курсора. Таким образом можно создавать и более сложные объекты.

3. Загрузка картинок через CSS
Некоторые фоновые изображения лучше загружать через CSS. Например, чтобы показать картинку размером 200х100, можно использовать следующий код:
<div class="pretty-image"></div>
И соответствующий CSS:
.pretty-image { background: url(filename.gif); width: 200px; height: 100px }
Сначала это может показаться бессмысленным, но на самом деле такой способ может намного ускорить загрузку страницы. В этом случае браузер начнёт загружать картинку только после того, как будет выведен весь текст, а не одновременно. Таким образом пользователи могут работать со страницей, в кто время как изображение ещё будет подгружаться.
Эта техника лучше всего подходит для загрузки чисто декоративных, фоновых элементов страницы. Если изображение является частью содержимого, всё равно придётся использовать тег IMG.

4. Использование контекстных стилей
Данный код неэффективен:
<p class="text">This is a sentence</p>
<p class="text">This is another sentence</p>
<p class="text">This is yet another sentence</p>
<p class="text">This is one more sentence</p>
.text { color: #03c; font-size:2em }
Вместо того, чтобы присваивать класс каждому параграфу, их можно сгруппировать в одном элементе DIV с тем же классом: <div class="text">
<p>This is a sentence</p>
<p>This is another sentence</p>
<p>This is yet another sentence</p>
<p>This is one more sentence</p>
</div>
.text p { color: #03c; font-size:2em }
Этот код указывает браузеру, что каждый параграф внутри элемента с классом text будет иметь цвет #03c и размер шрифта в 2em.
Вы могли заметить, что цвет здесь указан всего тремя символами, а не шестью. В данном случае #03c является сокращённым написанием значения цвета #0033cc.
5. Использование сокращений

Шрифт
Лучше написать:
font: 1em/1.5em bold italic serif
...вместо
font-size: 1em;
line-height: 1.5em;
font-weight: bold;
font-style: italic;
font-family: serif

Границы
Лучше:
border: 1px black solid
...вместо
border-width: 1px;
border-color: black;
border-style: solid

Фон
Пишите:
background: #fff url(image.gif) no-repeat top left
..вместо
background-color: #fff;
background-image: url(image.gif);
background-repeat: no-repeat;
background-position: top left;
Отступы и границы
Используйте:
margin: 2px 1px 3px 4px; (верх, вправо, низ, влево)

Продолжение

Данная статья разрешена для публикации только на http://visavi.net/