Правило @charset

Кодировка документа обычно задается в html-документе в теге <meta charset="...">. Как для html-документов, так и для таблиц стилей должна использоваться кодировка UTF-8.

<!-- HTTP запись -->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<!-- краткая запись для HTML5 -->
<meta charset="utf-8">

Кодировка — это таблица соответствия машинных кодов и символов алфавита.

Правило @charset определяет кодировку символов, используемую в таблице стилей. Правило должно быть указано самым первым в таблице стилей и ему не должен предшествовать какой-либо символ, даже пробел. Если задано несколько правил @charset, то будет использоваться только первое. Правило может быть полезно при использовании не-ASCII символов в некоторых css-свойствах, например, content.

Не допускается одновременное задание кодировки в таблице стилей с помощью правила @charset и на html-странице внутри элемента <style>, или как значение атрибута свойства style.

Поскольку существует несколько способов задания кодировки таблицы стилей, браузер проверяет эти способы в следующем порядке:
1) Тип кодировки символов, размещенных в начале документа.
2) Значение атрибута charset в Content-Type, указанное в http-заголовке (или аналогичном), передаваемом веб-сервером.
3) Тип кодировки, указанный в правиле @charset.
Если в результате проверки информация о кодировке не была получена, то браузер подразумевает, что документ в кодировке UTF-8.

Синтаксис

@charset "UTF-8";       
@charset 'iso-8859-15';
  • Создание Сайтов

    Не понял, для чего это нужно?

    • На практике я не встречала данное правило, достаточно тега meta.

      • Создание Сайтов

        Такое я встречал вроде в шрифтах и скриптах. Наверное это специально для корректного отображения спецсимволов.

        • В описании так и сказано «Правило может быть полезно при использовании не-ASCII символов в некоторых css-свойствах, например, content.»