2010-02-03 74 views
0

我需要從內容中定義html類,因此幾乎可以使用每個字符。根據html reference我可能會使用cdata,所以我不應該遇到問題。我認爲,該CSS和/或JavaScript/jQuery將不會很好地玩。允許的html/css/javascript - 類語法

任何人都有什麼經驗可以使用沒有問題的字符,或者如果有一個函數/插件/ ..整理類名,以便它們可用?

+0

看來HTML比CSS有更廣泛的有效類定義。根據[W3C Validator](http://validator.w3.org/),':foo','-foo','!foo','.foo','$ foo'和'@ foo'都是有效的類。這可能對[基於DOM的模板引擎]非常有用(http://stackoverflow.com/q/9282315/116639)! – 2012-08-16 17:53:36

回答

5

CSS類名必須是通常的標識符(http://www.w3.org/TR/CSS21/syndata.html#characters

在CSS 2.1,標識符(包括 元素名,類和在 選擇器的ID)可以只包含 字符[A-ZA-連字符( - )和下劃線(_);以及字符U + 00A1和更高的ISO 10646 ,以及連字符( - )和下劃線(_)的 。 他們不能以數字開頭。

Javascript不介意,因爲您將使用類名作爲字符串。所以就javascript而言,你可以使用任何字符。

如果你想剝離你的類名到可用的CSS子集,一個簡單的正則表達式就足夠了。如果你想編碼你的類名到同一個子集中,它會稍微困難一點,但我想你可以試着Base64-encode他們。這裏有一些用於base64編碼/解碼的jQuery plugins

+0

因爲他沒有要求一個特定的版本,所以有趣的是知道這些類在[HTML 3](http://www.w3.org/MarkUp/html3/html3.txt)中曾經被句點分隔開來。 – Knu 2015-05-27 23:07:01

1

就類屬性而言,您將遇到使用除[a-z],[A-Z]和[_-]以外的字符的問題。

對於任意數據,我會推薦(即將使用HTML5)data-x屬性。
查看http://ejohn.org/blog/html-5-data-attributes/舉例。

乾杯

+0

感謝您的信息..我還沒有讀過這個,但它聽起來很有趣.. – harpax 2010-02-03 14:30:55