Spec-Zone.ru › CSS

@charset

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

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

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

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

Синтаксис

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

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

@charset "<charset>";
charset

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

Примеры

Валидные и невалидные объявления 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 */

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

Спецификация
Спецификация Cascading Style Sheets Level 2 Revision 2 (CSS 2.2)
# charset①

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

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

См. также

  • Статья о кодировке символов в словаре
  • Статья о Юникоде в словаре

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

Spec-Zone.ru

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