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