2010-04-11 59 views
12

如其他地方詳細描述的here,html/css類名中唯一有效的字符是a-z,A-Z,0-9,連字符和下劃線,並且第一個字符應該是字母。但實際上,大多數瀏覽器實際上支持哪些字符?更具體地說,我不知道瀏覽器能夠正確理解類名稱中的斜槓(/),以及哪些瀏覽器支持以數字開頭的類名稱。CSS類名中廣泛支持哪些字符?

我主要感興趣的是獲得html而不是xhtml的答案,以防有所不同。

謝謝。

+0

沒有土特產品只是說, 「A-Z,A = Z,0-9,= _」? – 2010-04-11 13:41:10

+0

這些是有效的字符,但實際上其他字符至少也支持某些瀏覽器。我想知道除了有效字符(如果有的話)之外哪些字符可以可靠地使用。 – 2010-04-11 13:43:46

+0

爲什麼不打開記事本並給它一個測試... – bigstylee 2010-04-11 13:57:28

回答

10

注該類名是由HTML定義的,而不是CSS。 HTML4 saysclass屬性是cdata-list,它是空格分隔的令牌。因此,一個類名標記可以包含除空白字符以外的任何字符。

我不知道瀏覽器能夠正確理解類名中的斜槓(/),以及哪些瀏覽器支持以數字開頭的類名稱。

要在CSS類選擇器中引用這樣的名稱,您需要使用轉義。

.\31 blah\2F bläh { ... } 

這是由所有當前的瀏覽器支持:如:

<div class="1blah/bläh"> 

是匹配的。它沒有得到IE5的支持,但幸好這不再是一個問題。 (如果您擔心字符編碼不匹配,您可能更願意將ä編碼爲\E4,但這不是CSS的限制。)

如果您詢問哪些瀏覽器會讓您無效選擇器

.1blah/bläh 

那麼,那麼,誰在乎呢?只需使用有效的。

+0

+1,我很樂意給你一個單獨的最後一行! – 2010-04-11 14:23:52

+1

有效的類名* *由CSS定義。但那些在HTML中也是有效的只是這些的一個子集。請注意,CSS是一種可用於任何結構化語言而不僅僅是HTML的樣式表語言。 – Gumbo 2010-04-11 14:26:34

+2

謝謝bobince,那爲我解決了問題!我最初命名這個問題「HTML類名中廣泛支持哪些字符?」但有人將「HTML」改爲「CSS」。在這種情況下,對我來說重要的是讓HTML可讀而不會冒險,所以這對我有很大的幫助。在這種情況下,IE5中斷可能不是問題。謝謝! – 2010-04-11 15:22:56

-1

/和其他符號被用作選擇器(特別是在CSS3中),所以不能在類名中使用。支持的字符是你已經說過的。

1

http://www.w3.org/TR/2008/REC-CSS2-20080411/syndata.html

如果你看一下語法,你明白標識符被定義爲

ident  {nmstart}{nmchar}* 
nmstart  [a-zA-Z]|{nonascii}|{escape} 
nmchar  [a-z0-9-]|{nonascii}|{escape} 
nonascii [^\0-\177] 
unicode  \\[0-9a-f]{1,6}[ \n\r\t\f]? 

所以這裏是你的答案..

(這是CSS2)

+0

這並不能解釋實際支持哪些字符或序列。是否支持'.foo \ bar','。\ /'或'。\ 1234'? – Gumbo 2010-04-11 14:06:16