CSS - @规则

@charset CSS中的at-rule用于指定外部样式表的字符编码。

需要注意的是,在很多情况下,你不需要显式地指定使用 @charset 规则,因为大多数现代 Web 服务器和文本编辑器默认使用 UTF-8 编码保存 CSS 文件。但是,在某些特定情况下,当处理非标准字符编码或想要明确编码时,@charset 规则可能会很有用。

概述

  • @charset 必须是样式表中的第一个元素。

  • 它前面不应有任何字符。

  • 它不是嵌套语句,因此不应在条件组 at 规则中使用。

  • 以防万一指定了多个 @charset at-rules,仅应用或使用第一个。

  • @charset at-rule 不能在 HTML 的 style 属性内使用元素或 <style> 标记内。

  • 在某些 CSS 属性(例如内容)中使用非 ASCII 字符时非常有用。

有多种方法可以定义样式表的字符编码,但浏览器将按照给定的顺序遵循这些方法:

  • Unicode 字节顺序字符的值将放置在文件的开头。

  • Content-Type: HTTP 标头中的 charset 属性提供的值或用于传递样式表的协议中的等效值。

  • CSS at-rule 的字符集。

  • 应使用引用文档指定的字符编码,即 <link> 的字符集属性。注意:虽然此方法已过时,但应避免使用。

语法

@charset ""; 
/* Example: @charset    
@charset "UTF-8";
@charset "iso-8859-15"; 

可能的值

唯一的值@charset at-rule 可以拥有的字符集。

  • 它是一个 <string>,表示可以使用的字符编码。

  • 它应该根据 IANA-registry。

  • 必须用双引号定义,后跟一个空格字符 (U+0020),最后终止使用分号 (;)。

  • 如果多个名称与编码关联,则必须考虑标有首选值的名称。

有效和无效的 @charset 声明

下面显示的语法是声明 @charset at 规则的正确方法。

@charset "UTF-8"; 

下面显示的语法是声明 @charset at-rule 的错误方式。

@charset 'UTF-8'; /* 单引号无效 */
@charset   "UTF-8"; /* @charset 后多于两个空格 */
 @charset "UTF-8"; /* @charset 之前有空格 */
@charset "UTF-8" /* 不以分号结尾 */
@charset UTF-8; /* 无效,因为 UTF-8 是字符串并且需要双引号 */