CSS 中的 @charset at-rule 用于指定外部样式表的字符编码。
需要注意的是,在许多情况下,您不需要明确使用 @charset 规则,因为大多数现代 Web 服务器和文本编辑器默认使用 UTF-8 编码保存 CSS 文件。但是,在某些特定情况下,在处理非标准字符编码时,或者如果您想要明确说明编码,@charset规则可能很有用。
概述
- @charset必须是样式表中的第一个元素。
- 它不应在它前面包含任何字符。
- 它不是嵌套语句,因此不应在条件组 at 规则中使用。
- 如果指定了多个 @charset at 规则,则仅应用或使用第一个规则。
- @charset规则不能在 HTML 元素的 style 属性中使用,也不能在 <style> 标记中使用。
- 在某些 CSS 属性(如内容)中使用非 ASCII 字符时,它非常有用。
有多种方法可以定义样式表的字符编码,但浏览器将按照给定的顺序遵循这些方法:
- Unicode 字节顺序字符的值将放在文件的开头。
- 由 Content-Type: HTTP 标头中的 charset 属性提供的值,或用于传递样式表的协议中的等效项。
- 字符集 CSS at-rule。
- 应使用引用文档指定的字符编码,即 <link> 的 charset 属性。注意:虽然这种方法已经过时,但应避免使用。
语法
@charset "";
/* Example: @charset
@charset "UTF-8";
@charset "iso-8859-15";
可能的值
@charset规则可以具有的唯一值是字符集。
- 它是一个<字符串>表示可以使用的字符编码。
- 它应根据 IANA 注册机构列出 Web 安全字符编码的名称。
- 它必须用双引号定义,跟在一个空格字符 (U+0020) 后面,最后用分号 (;).
- 如果多个名称与编码相关联,则必须考虑标有首选值的名称。
有效和无效的@charset声明
下面显示的语法是声明 @charset at 规则的正确方法。
@charset "UTF-8";
下面显示的语法是声明 @charset at 规则的错误方式。
@charset 'UTF-8'; /* Single quotes is invalid */
@charset "UTF-8"; /* More than two spaces after @charset */
@charset "UTF-8"; /* space before @charset */
@charset "UTF-8" /* Not terminated with a semi-colon */
@charset UTF-8; /* Invalid, as the UTF-8 is a string and requires double quotes */