CSS-справочникВ стандарте

CSS @keyframes — как работает

CSS @keyframes: принцип работы, корректный синтаксис, практический сценарий, ограничения, ошибки и актуальная совместимость.

Назначение и границы

Назначение «@keyframes» раскрывается через задачу «управлять условием, ресурсом или областью применения блока CSS». Правило @keyframes управляет частью таблицы стилей на уровне, отличном от обычной декларации. Для воспроизводимой проверки «@keyframes» используйте пример в диалоге с возвратом фокуса после закрытия и наблюдайте отображение в режиме печати.

Практическое правило для @keyframes

Рабочий критерий для «@keyframes»: соблюдайте допустимое место @-правила и порядок относительно других правил. Если результат «@keyframes» меняется вместе с посторонним условием, пример ещё не изолирован.

Синтаксис @keyframes

Синтаксис «@keyframes» показан на минимальном фрагменте без внешнего фреймворка. Сначала запустите исходный вариант, затем меняйте отмеченную часть.

css
@keyframes pulse {
  from { opacity: .65; }
  to { opacity: 1; }
}
Открыть в Playground

Как работает @keyframes

Браузер обрабатывает «@keyframes» в контексте области «CSS @-правила»: интерпретируется на уровне таблицы стилей, а не как обычное свойство элемента. Для «@keyframes» наблюдения через отображение в режиме печати и результат при отключённом JavaScript отделяют исходное условие от результата.

Проверка в проекте

  • Соблюдайте допустимое место @-правила и порядок относительно других правил; результат относится непосредственно к «@keyframes».
  • Включить направление rtl и проверить логические стороны раскладки при разборе «@keyframes».
  • Проверьте «@keyframes» в диалоге с возвратом фокуса после закрытия через отображение в режиме печати и запишите наблюдаемое изменение.
Выбор конструкции

Критерий выбора «@keyframes» — предсказуемая работа в заявленном контексте. Для «@keyframes» подтвердите её через отображение в режиме печати и соблюдите ограничение: проверяйте отсутствие данных как отдельный сценарий.

Практика с @keyframes

Проверьте «@keyframes» в изолированном демо с длинным текстом, клавиатурным управлением и узким экраном. Отдельная проверка для «@keyframes»: соблюдайте допустимое место @-правила и порядок относительно других правил.

CSS @-правила@keyframes

Сценарий: в диалоге с возвратом фокуса после закрытия.

Ошибки при работе с @keyframes

01

Доступность

Неверное положение или синтаксис @keyframes может сделать весь блок недействительным — это предметный риск для «@keyframes».

02

Каскад

Отсутствие запасного поведения при неподдерживаемой возможности при использовании «@keyframes».

03

Поддержка

Оптимизация кода до проверки корректности и доступности; для «@keyframes» проверьте это отдельно.

Поддержка @keyframes

Для «@keyframes» таблица собрана из закреплённой версии MDN Browser Compatibility Data. Указанная версия браузера показывает первое заявленное появление базовой поддержки «@keyframes»; окончательное решение принимайте по аудитории конкретного проекта.

Chromeс версии 43Edgeс версии 12Firefoxс версии 16Safariс версии 9

Спецификация: источник 1.

Вопросы о @keyframes

Как понять, что «@keyframes» выбрано правильно?

«@keyframes» выбрано правильно, когда оно решает задачу «управлять условием, ресурсом или областью применения блока CSS», сохраняет результат в диалоге с возвратом фокуса после закрытия и проходит предметную проверку: соблюдайте допустимое место @-правила и порядок относительно других правил.

Нужен ли запасной вариант для «@keyframes»?

Запасной вариант для «@keyframes» нужен, если целевой браузер или режим не обеспечивает выбранное поведение. Без улучшения «@keyframes» должно сохранять смысл, содержимое и основное действие.

Спецификации и источники

Синтаксис и статус проверяются по HTML Living Standard, спецификациям CSS и MDN Browser Compatibility Data. Примеры и объяснения подготовлены для этого сервиса.