blob: c01e1711063233ca592a68b987d49927b456e461 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
---
title: '@charset'
slug: Web/CSS/@charset
tags:
- '@charset'
translation_of: Web/CSS/@charset
---
<div>{{ CSSRef }}</div>
<div> </div>
<h2 id="概述">概述</h2>
<p> <strong><code>@charset </code></strong><a href="/en/CSS" title="CSS">CSS</a> <a href="https://developer.mozilla.org/zh-CN/docs/CSS/At-rule" title="At-rule">@规则</a> 指定样式表中使用的字符编码。它必须是样式表中的第一个元素,而前面不得有任何字符。因为它不是一个<a href="https://developer.mozilla.org/en/CSS/Syntax#nested_statements">嵌套语句</a>,所以不能在<a href="https://developer.mozilla.org/zh-CN/docs/CSS/At-rule" title="At-rule">@规则</a><a href="https://developer.mozilla.org/en/CSS/At-rule#Conditional_Group_Rules">条件组</a>中使用。如果有多个 <strong><code>@charset </code></strong><a href="https://developer.mozilla.org/zh-CN/docs/CSS/At-rule" title="At-rule">@规则</a>被声明,只有第一个会被使用,而且不能在HTML元素或HTML页面的字符集相关 {{ HTMLElement("style") }} 元素内的样式属性内使用。</p>
<p>此 <a href="https://developer.mozilla.org/zh-CN/docs/CSS/At-rule" title="At-rule">@规则</a> 在某些 CSS 属性中使用非 ASCII 字符时非常有用,例如 {{ cssxref("content") }}。</p>
<p>在样式表中有多种方法去声明字符编码,浏览器会按照以下顺序尝试下边的方法(一旦找到就停止并得出结果):</p>
<ol>
<li>文件的开头的 <a href="http://en.wikipedia.org/wiki/Byte_order_mark" title="http://en.wikipedia.org/wiki/Byte_order_mark">Unicode byte-order</a> 字符值。</li>
<li>由Content-Type:HTTP header 中的 charset 属性给出的值或用于提供样式表的协议中的等效值。</li>
<li><code>CSS </code><a href="https://developer.mozilla.org/zh-CN/docs/CSS/At-rule" title="At-rule">@规则</a> <code>@charset。</code></li>
<li>使用参考文档定义的字符编码: {{ HTMLElement("link") }} 元素的 charset 属性。 该方法在 HTML5 标准中已废除,无法使用。</li>
<li>假设文档是 UTF-8。</li>
</ol>
<h2 id="语法">语法</h2>
<pre>@charset "UTF-8";
@charset "iso-8859-15";
</pre>
<p>where:</p>
<dl>
<dt style="margin: 0 40px;"><em>charset</em></dt>
<dd style="margin: 0px 40px;">它是一个<em> </em>{{cssxref("<string>")}} 表示字符编码被使用。它必须是在被 <a href="http://www.iana.org/assignments/character-sets">IANA-registry</a> 声明过的 web-safe 字符编码中的一个, 还必须被双引号包围, 遵循一个空格字符 (U+0020),并且立即以分号结束。 如果有多个相关的编码名字,只有被标记为 <em>preferred </em>的那个才会被使用。</dd>
</dl>
<h3 id="语法格式">语法格式</h3>
{{csssyntax}}
<h2 id="例子">例子</h2>
<pre class="brush: css">@charset "UTF-8";
@charset "utf-8"; /*大小写不敏感*/
/* 设置css的编码格式为Unicode UTF-8 */
@charset 'iso-8859-15'; /* 无效的, 使用了错误的引号 */
@charset 'UTF-8'; /* 无效的, 使用了错误的引号 */
@charset "UTF-8"; /* 无效的, 多于一个空格 */
@charset "UTF-8"; /* 无效的, 在at-rule之前多了一个空格 */
@charset UTF-8; /* Invalid, without ' or ", the charset is not a CSS {{cssxref("<string>")}} */
</pre>
<h2 id="规范">规范</h2>
<table class="standard-table">
<thead>
<tr>
<th scope="col">Specification</th>
<th scope="col">Status</th>
<th scope="col">Comment</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{ SpecName('CSS2.1', 'syndata.html#x57', '@charset') }}</td>
<td>{{ Spec2('CSS2.1') }}</td>
<td>Initial definition</td>
</tr>
</tbody>
</table>
<h2 id="Browser_compatibility" name="Browser_compatibility">浏览器兼容性</h2>
<p>{{Compat("css.at-rules.charset")}}</p>
|