CSS - @charset



CSS 中的@charset规则用于指定外部样式表的字符编码。

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

概述

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

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

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

  • 如果指定多个@charset规则,则只应用或使用第一个。

  • @charset规则不能在HTML元素的style属性内或<style>标签内使用。

  • 当在某些CSS属性(例如content)中使用非ASCII字符时,它非常有用。

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

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

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

  • charset CSS @规则。

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

语法

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

可能的值

@charset规则唯一可以拥有的值是charset

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

  • 它应该列出Web安全字符编码的名称,根据IANA 注册表

  • 它必须用双引号定义,后面跟着一个空格字符 (U+0020),最后以分号 (;) 结尾。

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

有效和无效的 @charset 声明

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

@charset "UTF-8";

下面显示的语法是声明@charset规则的错误方法。

@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 */
广告