Spec-Zone.ru › CSS

Правило CSS `@charset`

Базовая поддержка Широко доступно

Эта функция хорошо зарекомендовала себя и работает на множестве устройств и в разных версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

Правило @charset CSS задаёт кодировку символов, используемую в таблице стилей. Этот синтаксис полезен при использовании символов, не входящих в ASCII, в некоторых CSS-свойствах, например content. Хотя первый символ в @charset — это символ @, он не является правилом at-rule. Это особая последовательность байтов, которую можно разместить только в самом начале таблицы стилей. Перед ней не допускаются никакие другие символы, кроме маркера порядка байтов Unicode. Кроме того, она не подчиняется обычным правилам синтаксиса CSS, таким как использование кавычек или пробелов.

Если @charset не распознаётся как объявление кодировки, оно разбирается как обычное правило at-rule. Модуль синтаксиса CSS объявляет такое резервное поведение устаревшим: оно считается нераспознанным устаревшим правилом, которое следует удалить при проверке таблицы стилей на соответствие грамматике.

Поскольку кодировку символов таблицы стилей можно задать несколькими способами, браузер проверяет следующие варианты в указанном порядке и останавливается, как только находит результат:

  1. Значение символа маркера порядка байтов Unicode, расположенного в начале файла.
  2. Значение атрибута charset заголовка HTTP Content-Type: или его эквивалент в протоколе, используемом для передачи таблицы стилей.
  3. Объявление CSS @charset.
  4. Использование кодировки символов, заданной в документе, ссылающемся на таблицу стилей: атрибут charset элемента <link>. Этот способ устарел и не должен использоваться.
  5. Предполагается, что документ имеет кодировку UTF-8.

Синтаксис

@charset "UTF-8";
@charset "iso-8859-15";

Параметры

charset
<string>, задающая используемую кодировку символов. Это должно быть название безопасной для веба кодировки символов, определённой в реестре IANA. Оно должно быть заключено в двойные кавычки, после ровно одного пробела (U+0020) и непосредственно перед точкой с запятой. Если с кодировкой связано несколько названий, следует использовать только то, которое помечено как предпочтительное.

Формальный синтаксис

Обратите внимание, что правило @charset разбирается не с помощью синтаксиса, а с помощью специальной последовательности байтов следующего вида:

@charset "<charset>";

Примеры

Допустимые и недопустимые объявления кодировки

@charset "UTF-8"; /* Set the encoding of the style sheet to Unicode UTF-8 */
@charset 'iso-8859-15'; /* Invalid, wrong quotes used */
@charset  "UTF-8"; /* Invalid, more than one space */
 @charset "UTF-8"; /* Invalid, there is a character (a space) before the declarations */
@charset UTF-8; /* Invalid, the charset is a CSS <string> and requires double-quotes */

Спецификации

Спецификация
Модуль синтаксиса CSS, уровень 3
# at-ruledef-charset

Совместимость с браузерами

Компьютеры Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome для Android Firefox для Android Opera для Android Safari на iOS Samsung Internet WebView для Android WebView на iOS
charset
2
12
1.5Firefox 1 поддерживал недопустимый синтаксис, в котором кодировка символов не заключена в одинарные или двойные кавычки.
9
4
18
4
10.1
4
1.0
2
4

См. также

  • Набор символов — статья в глоссарии
  • Unicode — статья в глоссарии

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/@charset

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API