5 回答

TA貢獻1946條經驗 獲得超4個贊
閱讀W3C規范。(這是CSS 2.1,找到適合您的瀏覽器假設的版本)
編輯:相關段落如下:
在CSS中,標識符(包括選擇器中的元素名稱,類和ID)只能包含字符[a-z0-9]和ISO 10646字符U + 00A1和更高,加上連字符( - )和下劃線(_) ; 它們不能以數字開頭,也不能以數字后跟連字符開頭。標識符還可以包含轉義字符和任何ISO 10646字符作為數字代碼(請參閱下一項)。例如,標識符“B&W?” 可以寫成“B \&W \?” 或“B \ 26 W \ 3F”。
編輯2:正如@mipadi在Triptych的回答中指出的那樣,有一個警告,也在同一個網頁中:
在CSS中,標識符可以以“ - ”(破折號)或“_”(下劃線)開頭。以“ - ”或“_”開頭的關鍵字和屬性名稱保留給特定于供應商的擴展。此類特定于供應商的擴展應具有以下格式之一:
'-' + vendor identifier + '-' + meaningful name '_' + vendor identifier + '-' + meaningful name例子):
例如,如果XYZ組織添加了一個屬性來描述顯示器東側邊框的顏色,則可以將其稱為-xyz-border-east-color。
其他已知的例子:
-moz-box-sizing -moz-border-radius -wap-accesskey保證初始破折號或下劃線永遠不會被任何當前或未來的CSS級別用于屬性或關鍵字。因此,典型的CSS實現可能無法識別這些屬性,并且可能根據用于處理解析錯誤的規則來忽略它們。但是,因為初始短劃線或下劃線是語法的一部分,所以CSS 2.1實現者應始終能夠使用符合CSS的解析器,無論它們是否支持任何特定于供應商的擴展。
作者應避免特定于供應商的擴展

TA貢獻1801條經驗 獲得超16個贊
完整的正則表達式是:
-?(?:[_a-z]|[\200-\377]|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])(?:[_a-z0-9-]|[\200-\377]|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\ [^\r\n\f0-9a-f])*
因此,如果直接使用,則不允許使用除“ -
”和“ _
” 之外的所有列出的字符。但您可以使用反斜杠foo\~bar
或使用unicode表示法對它們進行編碼foo\7E bar
。
- 5 回答
- 0 關注
- 1375 瀏覽
相關問題推薦
添加回答
舉報