CSS - @charset 属性



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 */