@charset
@charset CSS 规则指定样式表中使用的字符编码。当在某些 CSS 属性(如 content)中使用非 ASCII 字符时,此语法非常有用。尽管 @charset 中的第一个字符是 @ 符号,但它不是一个 at-rule。它是一个特定的字节序列,只能放置在样式表的开头。除了 Unicode 字节顺序标记之外,不允许在其前面出现其他字符。它也不遵循正常的 CSS 语法规则,例如引号或空白的使用。
如果 @charset 未被识别为字符集声明,则它会被解析为一个普通的 at-rule。CSS 语法模块废弃了这种回退行为,将其定义为当样式表进行语法检查时应丢弃的无法识别的旧规则。
由于有多种方法可以定义样式表的字符编码,浏览器将按以下顺序尝试以下方法(并在其中一种方法产生结果时立即停止):
- 文件开头放置的 Unicode 字节顺序字符的值。
- 由
Content-Type:HTTP 头部的charset属性或用于提供样式表的协议中的等效属性所赋的值。 @charsetCSS 声明。- 使用引用文档定义的字符编码:
<link>元素的charset属性。此方法已过时,不应使用。 - 假定文档为 UTF-8。
语法
css
@charset "UTF-8";
@charset "iso-8859-15";
参数
正式语法
请注意,@charset 规则不是通过语法解析的,而是通过以下形式的特定字节序列解析的:
@charset "<charset>";
示例
有效和无效的字符集声明
css
@charset "UTF-8"; /* Set the encoding of the style sheet to Unicode UTF-8 */
css
@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 |
浏览器兼容性
加载中…