Ускоряем свой CSS

Ускоряем свой CSS



Вы когда-нибудь думали о размере файлов CSS-стилей на своем сайте? Ведь если эти файлы имеют большой вес, это негативно скажется на загрузке (отрисовке) страницы.

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

В сегодняшней статье мы рассмотрим несколько советов, которые помогут вам уменьшить размер CSS-файлов, а также ускорить рендеринг страниц сайта.

 

 

  1. Используйте инструменты для очистки CSS

В одной из предыдущих статей мы рассматривали инструменты, которые помогают оптимизировать CSS-стили. Используйте подобные инструменты, чтобы пройти валидацию кода, найти ошибки в коде, удалить дубликаты набора правил и удалить неиспользуемые CSS-стили.

 

 

  1. Используйте урезанные селекторы

Когда дело доходит до CSS, срабатывает правило «чем меньше, тем лучше» (Краткость – сестра таланта). Использование кратких селекторов поможет уменьшить десятки килобайты при достаточно больших файлах стилей. Возьмем, например, такой селектор:

aside ul li.item-list

 

Его можно использовать в более урезанном виде:

.item-list

 

Помимо того, что этим вы уменьшите размер CSS-файла, браузер также будет быстрее отображать элементы с краткими селекторами. Браузеры читают селектор справа налево. И чем больше глубина селектора, тем больше времени требуется браузеру для его анализа.

В идеале селектор должен быть как можно более кратким, но это не значит, что вы должны полностью обрезать все селекторы. Иногда приходится использовать более углубленный селектор, особенно для страницы со сложным DOM. Поэтому, используйте здравый подход и находите правильный баланс.



 

 

  1. Используйте сокращенные свойства

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

font-size: 25px;
line-height: 1.5;
font-family: "Roboto",arial,sans-serif;

 

Здесь используется довольно много CSS-стилей! Давайте уменьшим это:

font: 25px/1.5 "Roboto",arial,sans-serif;

 

Сокращенное свойство font содержит несколько деклараций в удобном однострочном виде, который занимает гораздо меньше места.

В примере, показанном выше, краткая запись меньше примерно на 40% за расширенную запись. Это может показаться нечитабельным, но когда подобный синтаксис войдет в вашу практику, он станет для вас намного практичнее.

Свойство font – это не единственная сокращенная версия, которую можно использовать подобным способом. Например, отступы (padding и margin) можно использоваться вместо более длинных записей свойств, например margin-bottom, padding-right и т.д.

А что делать, если вам позднее нужно будет переопределить одно из свойств? Например, предположим, что у вас есть элемент списка (li), размер шрифта которого должен увеличиться на больших экранах. В этом случае вам нужно только использовать расширенную запись свойства размера шрифта:

 

.item-list {
  font: 25px/1.5 "Roboto",arial,sans-serif;
}
@media (min-width: 1920px){
 .item-list {
  font-size: 35px;
 }
}

 

Этот поход очень удобный и гибкий. Вам не нужно переписывать все правило, если вам нужно изменить какую-либо часть свойства основного шрифта.

 

 

  1. Используйте подсказку ресурса предварительной загрузки (preload)

Значение preload атрибута rel элемента <link> позволяет делать декларативные запросы на ресурсы, которые могут понадобиться сразу после загрузки страницы. Предварительная загрузка гарантирует, что ресурсы будут доступны заранее, и с меньшей вероятностью заблокируют первый рендеринг страницы, что приведет к повышению отрисовки.

Например, для предварительной загрузки файла CSS стилей, вы можете указать его в теге <link>:

<link rel="preload" href="/css/styles.css" as="style">

 

Или как HTTP-заголовок:

Link: </css/styles.css>; rel=preload; as=style

 

Использование предварительной загрузки в HTTP-заголовке предпочтительнее, так как в этом случае браузер обнаружит подсказку ранее в заголовках ответов, а не позже в теле ответа.

 



Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *