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

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

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

Практический смысл

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

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

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

Синтаксис @scope

Пример «@scope» оставляет только контекст, необходимый для области «CSS @-правила». Измените одно значение и проследите результат в браузере.

css
@scope (.card) to (.card__footer) {
  a { color: #2563eb; }
}
Открыть в Playground

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

Интерпретируется на уровне таблицы стилей, а не как обычное свойство элемента. Для «@scope» проверьте две контрольные точки — поведение без пользовательской таблицы стилей и изменение при prefers-reduced-motion: так видно, на каком этапе появляется итоговое поведение этой темы.

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

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

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

Практика с @scope

Соберите «@scope» на контрольной странице и проверьте предметное условие: соблюдайте допустимое место @-правила и порядок относительно других правил. Затем для «@scope» замените содержимое длинным и сузьте контейнер до 320 px.

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

Сценарий: в печатной версии длинного справочного материала.

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

01

Устойчивость

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

02

Доступность

Загрузка тяжёлого ресурса до того, как он нужен пользователю при использовании «@scope».

03

Каскад

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

Поддержка @scope

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

Chromeс версии 27Edgeс версии 79Firefoxс версии 32Safariс версии 7

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

Вопросы о @scope

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

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

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

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

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

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