0Pricing
CSS Academy · Урок

Производительность: трансформируемые свойства и перерисовка

Узнайте, какие свойства ускоряются GPU, а какие вызывают затратную перерисовку макета.

«Производительность: трансформируемые свойства и перерисовка» — бесплатный урок CSS Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения CSS Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс CSS Academy содержит 4 уроков всего.

Конвейер отрисовки

Браузеры выполняют отрисовку в три этапа: Компоновка (размер и положение) → Рисование (пиксели) → Сведение (объединение слоёв на GPU). Анимация свойств, запускающих более ранние этапы, требует значительных ресурсов.

Свойства, запускающие компоновку

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

  • width, height
  • margin, padding
  • top, left
  • font-size
  • display

Свойства, запускающие рисование

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

  • background-color
  • color
  • box-shadow
  • border

Свойства только для сведения

Эти свойства пропускают и компоновку, и рисование — браузеру нужно только объединить предварительно растеризованные слои. Это очень дёшево и ускоряется с помощью GPU:

  • transform
  • opacity

Золотое правило анимации CSS

Для плавных анимаций с частотой 60 кадров в секунду анимируйте только transform и opacity. Используйте transform: translate() вместо изменения положения сверху или слева, а opacity — вместо плавного исчезновения через display.

  <div class="box demo-active">Box</div>

Свойство предварительной подготовки

will-change сообщает браузеру, что элемент нужно заранее перевести в собственный слой GPU до начала анимации, чтобы во время анимации не возникала «вспышка» при переводе в слой.

  <div class="animated">Animated</div>

Автоматический режим подготовки

После завершения анимации установите will-change: auto или полностью удалите это свойство. Слишком большое количество элементов в отдельных слоях расходует память GPU.

Измерение с помощью DevTools

Используйте вкладку Производительность в Chrome DevTools, чтобы записать и проверить длительность кадров. На вкладке Отрисовка можно включить подсветку перерисовки: зелёный слой покажет, какие элементы перерисовываются в каждом кадре.

Преобразование вместо положения сверху и слева

Самая эффективная оптимизация — заменить анимацию положения преобразованием:

  <div class="fly demo-active">Fly</div>

Стоимость перехода цвета

Переходы цвета фона запускают перерисовку, но не компоновку. Для небольших элементов это приемлемо. Для больших фонов рассмотрите псевдоэлемент с переходом прозрачности:

  <button class="btn demo-active">Hover me</button>

Свойство изоляции

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

  <div class="widget">Widget</div>

Быстрая проверка

Какие два свойства CSS можно анимировать на этапе сведения, не запуская компоновку или рисование?

Повторение

Анимация свойств компоновки (ширины, положения сверху, внешнего отступа) запускает дорогостоящие пересчёты. Свойства рисования (цвет, фон) требуют меньше ресурсов. Только transform и opacity анимируются на этапе сведения с помощью GPU, не запуская компоновку или рисование. Для плавных и производительных анимаций всегда отдавайте им предпочтение.

Часто задаваемые вопросы

Урок «Производительность: трансформируемые свойства и перерисовка» бесплатный?

Да — полный текст урока «Производительность: трансформируемые свойства и перерисовка» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс CSS Academy, подпишись на CoddyKit PRO. Курс CSS Academy содержит 4 уроков всего.

Чему я научусь в уроке «Производительность: трансформируемые свойства и перерисовка»?

Узнайте, какие свойства ускоряются GPU, а какие вызывают затратную перерисовку макета. Ты практикуешь CSS Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать CSS Academy?

Предыдущий опыт не требуется. CSS Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Производительность: трансформируемые свойства и перерисовка»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке CSS Academy?

Да. Каждый урок CSS Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Длительность и время перехода свойства
  2. Функции сглаживания: ease, linear, cubic-bezier
  3. Переход нескольких свойств
  4. Производительность: трансформируемые свойства и перерисовка
← Назад к CSS Academy