charset utf 8 css

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

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

  1. Данные по кодировке получаемые по серверному протоколу.
  2. Кодировка указанная в правиле @charset .
  3. Кодировка используемая в атрибуте charset тега
  4. (если есть).
  5. Кодировка HTML-страницы установленная в метатеге Content-Type ( ).
  6. Если определить не получилось, то используется кодировка UTF-8.

Во избежание каких-либо проблем с определением кодировки, рекомендую вам писать комментарии в CSS-файлах только латинскими буквами, а не использовать @charset .

Содержание

  1. Тип правила
  2. Значения
  3. 4 ответов
  4. рекомендуемая литература
  5. Краткая информация
  6. Версии CSS
  7. Описание
  8. Синтаксис
  9. Значения
  10. Браузеры

Тип правила

Применяется: только во внешних таблицах стилей и только в единственном числе в самом начале CSS-файла.

Значения

Значением @charset является указание кодировки взятой в обязательные кавычки, которая пишется сразу после объявления самого правила, например «Windows-1251» или «utf-8».

Я видел эту инструкцию как самую первую строку многочисленных файлов CSS, которые были переданы мне:

что он делает, и это правило нужно?

кроме того, если я включу этот мета-тег в свой элемент «head», это устранит необходимость его присутствия в моих CSS-файлах?

4 ответов

Он сообщает браузеру прочитать файл css как UTF-8. Это удобно, если CSS содержит символы юникода, а не только ASCII.

использование его в метатеге нормально, но только для страниц, которые включают этот мета-тег.

прочитайте о правилах разрешения набора символов CSS-файлов в спецификация W3C для CSS 2.

это полезно в контекстах, где кодировка не указана в заголовке HTTP или других метаданных, например в локальной файловой системе.

представьте себе следующую таблицу:

если читатель сохраняет файл на жесткий диск и опустить @charset правило, большинство браузеров будут читать его в кодировке языкового стандарта ОС, например Windows-1252, и вставлять â†- вместо стрелки.

к сожалению, вы не можете полагаться на этот механизм в качестве поддержки довольно . редко. И помните, что в сети HTTP-заголовок всегда будет переопределить @charset правило.

правильный правила для определения набора символов таблицы стилей в порядке приоритета:

  1. заголовок кодировки HTTP.
  2. Метку Порядка Следования Байтов.
  3. первый @charset правило.
  4. UTF-8.

последнее правило самое слабое, оно будет не работает в некоторых браузерах.
The в
устарел в HTML 5.
Следите за конфликтом между различными декларациями. Их нелегко отлаживать.

рекомендуемая литература

  • Русс Рольфе: объявление кодировок символов в CSS
  • в IANA: официальные имена для наборов символов — другие имена не допускаются; используйте имя на @charset если для одного и того же имени зарегистрировано более одного кодирование.
  • MDN: @charset . Существует таблица поддержки. Я не доверяю этому. 🙂
  • тест из РГ CSS.

одна из причин всегда включать спецификацию набора символов на каждой странице, содержащей текст, — избегать уязвимостей межсайтовых сценариев. В большинстве случаев набор символов UTF-8 является лучшим выбором для текста, включая HTML-страницы.

Если вы помещаете тег в свои css-файлы, вы делаете что-то неправильно. Тег принадлежит вашему HTML-код файлы и сообщает браузеру, как кодируется html, он ничего не говорит о css, который является отдельным файлом. Вы могли бы иметь совершенно разные кодировки для вашего html и css, хотя я не могу себе представить, что это была бы хорошая идея.

Internet Explorer Chrome Opera Safari Firefox Android iOS 6.0+ 8.0+ 2.0+ 9.0+ 4.0+ 1.5+ 1.0+ 1.0+

Краткая информация

Значение по умолчанию UTF-8 Ссылка на спецификацию http://www.w3.org/TR/CSS21/syndata.html#charset

Версии CSS

CSS 1 CSS 2 CSS 2.1 CSS 3

Описание

Команда @charset применяется для задания кодировки внешнего CSS-файла. Это имеет значение в том случае, если в CSS-файле используются символы национального алфавита.

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

  1. кодировка, которую отдает сервер;
  2. правило @charset ;
  3. атрибут charset тега
  4. ;
  5. кодировка, установленная в документе через метатег ( ).

Приведенный список имеет четко выраженную иерархию — чем выше находится пункт, тем выше его приоритет. Если ни один из пунктов не найден, будет установлена кодировка UTF-8.

Синтаксис

Значения

Для русского языка обычно указывается кодировка windows-1251 или utf-8. Значение кодировки обязательно должно быть взято в кавычки.

CSS2.1 IE 9 Cr Op Sa Fx

Браузеры

В браузере Internet Explorer до версии 7.0 включительно название кодировки допускается писать без кавычек, что противоречит спецификации CSS.

Источник: computermaker.info

Понравилась статья? Поделиться с друзьями:
Ок! Компьютер
Добавить комментарий