Увеличиваем скорость обработки CSS кода


При написании CSS кода возникает проблема медленного ранжирования в старых браузерах и компьютерах. Сегодня мы рассмотрим способы написания кода, который будет потреблять меньше пользовательский ресурсов и ранжироваться быстрее.

Каждый браузер по своему обрабатывает код. Например, Mozilla предлагает свои рекомендации по написанию кода.

Мы объединим все идеи и рекомендации существующие на данный момент, после чего обсудим детальнее каждую из них.

Скорость загрузки CSS
 

Способы ускорения ранжирования CSS

Избегайте перерисовки изображений после их загрузки

Для устранения перерисовки изображений, всегда определяйте ширину и высоту для всех картинок. Это позволяет браузеру выстроить элементы в корректном порядке еще до загрузки изображения.

Вы можете установить эти свойства в html коде, или же css свойством.

Если имеется надобность уменьшить изображение, прежде всего сделайте это в редакторе, после чего установите аналогичные параметры ширины и высоты в css коде. Другими словами, избегайте масштабирования изображений свойствами css.

Общие селекторы медленные, ID самый быстрый

Вот список селекторов, в порядке скорости ранжирования:

#sidebar  {}             /* ID (Самый быстрый) */
.home #slider {}         /* ID */
.footer {}               /* Class */
ul li a.arrow {}         /* Class */
ul {}                    /* Tag */
ul li a }                /* Tag */
* {}                     /* Универсальный (Самый медленный) */
#content [title='home']  /* Универсальный */

Для примера, этот селектор не будет обрабатываться достаточно быстро:

#sidebar > li

Казалось бы, если ID самый быстрый, такова конструкция будет работать быстро. Сначала находим ID, потом его дочерний элемент. Но это не так, браузеры считывают селекторы справа налево.

Принцип справа налево

Важно понимать, как браузеры обрабатывают css селекторы. Если селектор типа ol > li a[title="link"] прежде всего интерпретируется a[title="link"]

Хорошо знать, чем быстрее происходит интерпретация справа налево к необходимому элементу, тем скорее обрабатывается код. Другими словами, удаляйте ненужные селекторы из кода.

Ссылку на CSS файл пишите только в HEAD

Всегда выносите внешние CSS файлы и блоки стилей в head тег. Определяя внешние css файлы и блоки кода в теле документа, приводит к замедлению ранжирования.

Нисходящие селекторы

Уже рассматривали принцип справа налево. Вот пример нисходящего селектора, который потребляет критически много ресурсов:

html body nav a span {} 

Возьмите во внимание преимущества CSS каскадов

Иногда можно получить тот же результат без использования дополнительных селекторов. Для примера рассмотрим код:

nav li a {font-size:14px}

Такого же эффекта можно добиться, принимая во внимание каскадное наследование стилей:

nav {font-size:14px}

НЕ делайте так:

form#UserLogin {}

ID самый быстрый селектор, но он не будет работать достаточно быстро в данной конструкции. Это также применимо к классовым селекторам .classname

CSS3 селекторы

CSS3 селекторы (например :first-child) очень удобны в поддержании чистоты и семантики кода. Но, фактически они потребляют больше ресурсов браузера. Если вы обеспокоены разработкой быстрого css кода, лучше их не использовать вообще.

Скорость CSS и Практика

Это может выглядеть, как будто надо везде влепить ID и прописать стили к ID элемента. Но так теряется семантика кода, что более критически нежели несколько бит клиентской памяти.

Используйте выше рассмотренные принципы для создания специфических сайтов. Например для мобильных устройств с ограниченными ресурсами. В других случаях не беспокойтесь о пользовательских ресурсах.

Какие техники используете Вы для написания css кода? Обязательно делимся практикой в комментариях ниже!


Источник материала ...

Дальше: Как правильно подобрать сотрудников? Принципы подбора результативных работников


Дискуссия по теме     4 Комментария 
Добавить комментарий
Михаил 21.11.2013 в 12:19
Интересно написано: - "Ссылку на CSS файл пишите только в HEAD"!? Чтобы тормозило конкретно? Содержание верхней части страницы (<head>...</head>) отображается только после загрузки css файлов! Их необходимо выносить из HEAD в BODY и ставить перед </body>. Смотрим и читаем http://developers.google.com/speed/pagespeed/insights/
Тим 27.06.2013 в 19:12
Да да. Хотели как лучше, а получается как всегда
Slavik 22.04.2013 в 22:32
"Используйте выше рассмотренные принципы для создания специфических сайтов..." написал бы лучше вначале статьи, а не в конце, а то зря прочитал :)
Тарас 23.04.2013 в 00:32
Все равно знать полезно. Даже при написании кода под обычный веб сайт. Ведь лучше сделать как лучше :)
Просмотров: 4777