@charset
@charset
该@charset CSS 规则 规定的样式表使用的字符编码。它必须是样式表中的第一个元素,而不是前面有任何字符。因为它不是嵌套语句,所以不能在条件组at-rules中使用。如果@charset定义了多个at-rules,则只使用第一个,并且不能style在HTML元素的属性内使用,也不能<style>在HTML页面的字符集相关的元素内使用。
@charset "utf-8";
在某些CSS属性中使用非ASCII字符时,此规则很有用。例如content
。
由于有几种方法可以定义样式表的字符编码,浏览器将按以下顺序尝试以下方法(只要产生结果就停下来):
- 位于文件开头的Unicode字节顺序字符的值。
- HTTP标头的
charset
属性给出的值Content-Type:
或用于服务样式表的协议中的等效值。
- 在
@charset
CSS的规则。
- 使用引用文档定义的字符编码:元素的charset属性<link>。这种方法在HTML5中已经过时,不能使用。
- 假定文档是UTF-8
语法
@charset "UTF-8";
@charset "iso-8859-15";
其中:
charset 是<string>表示要使用的字符编码。它必须是在IANA注册管理机构中定义的网络安全字符编码的名称,并且必须用双引号,紧跟一个空格字符(U + 0020),并立即以分号结尾。如果多个名称与编码相关联,则只能使用_preferred标记的名称。
形式语法
@charset "<charset>";
实例
@charset "UTF-8"; /* Set the encoding of the style sheet to Unicode UTF-8 */
@charset 'iso-8859-15'; /* Invalid, wrong quoting style used */
@charset "UTF-8"; /* Invalid, more than one space */
@charset "UTF-8"; /* Invalid, there is a character (a space) before the at-rule */
@charset UTF-8; /* Invalid, without ' or ", the charset is not a CSS <string> */
规范
Specification | Status | Comment |
---|---|---|
CSS Level 2 (Revision 1)The definition of '@charset' in that specification. | Recommendation | Initial definition |
浏览器兼容性
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | 2.0 | No support | 1.5 (1.8)1 | 5.52 | 9 | 4 |
Feature | Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | 2.1 | No support | 1.0 (1.8) | 5.52 | 10.0 | 4 |