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

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

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

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

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

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

Для «@charset» сначала соблюдайте допустимое место @-правила и порядок относительно других правил. После этого сравните исходное и изменённое состояние «@charset» на одном и том же содержимом.

Синтаксис @charset

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

css
@charset "UTF-8";
Открыть в Playground

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

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

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

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

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

Практика с @charset

Создайте два варианта «@charset» на небольшом макете: корректный и с одной типичной ошибкой. Сравните варианты «@charset» через изменение DOM в панели Elements и объясните различие.

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

Сценарий: в интерфейсе с направлением письма справа налево.

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

01

Контекст

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

02

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

Зависимость результата от placeholder вместо постоянной подписи при использовании «@charset».

03

Доступность

Непредсказуемое наследование значения из внешнего компонента; для «@charset» проверьте это отдельно.

Поддержка @charset

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

Chromeс версии 2Edgeс версии 12Firefoxс версии 1.5Safariс версии 4

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

Вопросы о @charset

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

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

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

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

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

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