@charset
@charset
CSS 规则指定样式表中使用的字符编码。当在某些 CSS 属性(如 content
)中使用非 ASCII 字符时,此语法很有用。尽管 @charset
中的第一个字符是 @
符号,但它不是一个 at-规则。它是一个特定的字节序列,只能放在样式表的开头。在其之前不允许出现任何其他字符,除了 Unicode 字节顺序标记。它也不遵循正常的 CSS 语法规则,例如使用引号或空格。
如果 @charset
未被识别为字符集声明,它将被解析为一个普通的 at-规则。 CSS 语法 模块弃用了这种回退行为,将其定义为一个未识别的旧规则,在对样式表进行语法检查时应将其删除。
由于定义样式表字符编码的方法有很多,浏览器将尝试按照以下顺序使用以下方法(并在获得结果后立即停止)
- 放置在文件开头的 Unicode 字节顺序 字符的值。
- 由
Content-Type:
HTTP 标头的charset
属性或用于提供样式表的协议中的等效属性给出的值。 @charset
CSS 声明。- 使用引用文档中定义的字符编码:
<link>
元素的charset
属性。此方法已过时,不应使用。 - 假定文档为 UTF-8。
语法
css
@charset "UTF-8";
@charset "iso-8859-15";
正式语法
示例
有效和无效的字符集声明
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 */
规范
规范 |
---|
层叠样式表级别 2 修订版 2 (CSS 2.2) 规范 # charset① |
浏览器兼容性
BCD 表格仅在浏览器中加载