@charset
@charset CSS 規則指定樣式表中使用的字元編碼。當在某些 CSS 屬性(如 content)中使用非 ASCII 字元時,此語法非常有用。儘管 @charset 中的第一個字元是 @ 符號,但它不是一個 at-rule。它是一個特定的位元組序列,只能放置在樣式表的開頭。除了 Unicode 位元組順序標記之外,不允許在其前面出現其他字元。它也不遵循正常的 CSS 語法規則,例如引號或空白的使用。
如果 @charset 未被識別為字元集宣告,則它會被解析為一個普通的 at-rule。CSS 語法模組廢棄了這種回退行為,將其定義為當樣式表進行語法檢查時應丟棄的無法識別的舊規則。
由於有多種方法可以定義樣式表的字元編碼,瀏覽器將按以下順序嘗試以下方法(並在其中一種方法產生結果時立即停止):
- 檔案開頭放置的 Unicode 位元組順序字元的值。
- 由
Content-Type:HTTP 頭部的charset屬性或用於提供樣式表的協議中的等效屬性所賦的值。 @charsetCSS 宣告。- 使用引用文件定義的字元編碼:
<link>元素的charset屬性。此方法已過時,不應使用。 - 假定文件為 UTF-8。
語法
css
@charset "UTF-8";
@charset "iso-8859-15";
引數
正式語法
請注意,@charset 規則不是透過語法解析的,而是透過以下形式的特定位元組序列解析的:
@charset "<charset>";
示例
有效和無效的字元集宣告
css
@charset "UTF-8"; /* Set the encoding of the style sheet to Unicode UTF-8 */
css
@charset 'iso-8859-15'; /* Invalid, wrong quotes used */
@charset "UTF-8"; /* Invalid, more than one space */
@charset "UTF-8"; /* Invalid, there is a character (a space) before the declarations */
@charset UTF-8; /* Invalid, the charset is a CSS <string> and requires double-quotes */
規範
| 規範 |
|---|
| CSS 語法模組第 3 級 # at-ruledef-charset |
瀏覽器相容性
載入中…