2012-03-12 30 views
1

我的樣式表字符集包含類似下面的CSS代碼:指定的樣式表

#nav > li::after { 
    content: " ➻"; 
} 

您可能會注意到➻不是一個ASCII字符,因此它的「危險」,包括它在文件中沒有指定一個字符集。

現在事情已經順利,我從來沒有碰到與CSS樣式表(主要是因爲用戶代理越來越善於猜測「UTF-8」更好)編碼的問題,但我想知道是否有一個正確的方式明確指定它。

我已經試過這樣:

<link rel="stylesheet" type="text/css; charset=UTF-8" href="foo.css"/> 

但它似乎並沒有做任何事情,我儘量去指定一個虛假的編碼,它仍然正確顯示。

+0

相關:[爲什麼在你的css文件中指定@charset「UTF-8」](http://stackoverflow.com/questions/2526033/why-specify-charset-utf-8-in-your-css-file ) – 2012-03-12 03:28:21

+0

@Madmartigan,我不知道「@ charset」。這幾乎是我在找的東西。 – zneak 2012-03-12 03:31:08

+1

我敢肯定,除非你想比其他的東西也沒用任何默認/當前字符集是,或者只是偏執[來源請求]。 – 2012-03-12 03:32:43

回答

3

研究發現,引文,我需要:

http://www.w3.org/TR/CSS2/syndata.html#charset

當樣式表駐留在單獨的文件中,用戶端必須 確定的樣式表的 字符編碼時遵守以下優先級(從最高優先級到最低):

  1. 「Content-Type」字段中的HTTP「字符集」參數(或o中的類似參數療法協議)
  2. BOM和/或@charset(見下文)
  3. 或其他元數據從所述連接機構(如果有的話)
  4. 參照字符集的樣式表或文件(如果有的話)
  5. 假設的UTF- 8

所以,儘管@charset "UTF-8";是相關的,HTTP頭將其覆蓋。您可以<meta charset="utf-8">指定HTML文檔的meta標籤的字符集,這將滿足#4,和用戶代理應該回落到UTF-8反正。

與這些「字形」的,這一點很重要的是,最終用戶至少安裝了一個字體,支持它,所以記住這一點,在寫你的CSS。並非所有的字體都支持所有的Unicode字符。