正如这里以及其他地方所详述的,html/css 类名中唯一有效的字符是 az、AZ、0-9、连字符和下划线,并且第一个字符应该是字母。但实际上,大多数浏览器实际上支持哪些字符?更具体地说,我想知道哪些浏览器可以正确理解类名中的斜杠 (/),以及哪些浏览器支持以数字开头的类名。
我主要对获得 html 而不是 xhtml 的答案感兴趣,以防有区别。
谢谢你。
请注意,类名由 HTML 而非 CSS 定义。HTML4说class
属性是 a ,cdata-list
它是空格分隔的标记。因此,单个类名标记可以包含除空白字符之外的任何字符。
我想知道哪些浏览器可以正确理解类名中的斜杠 (/),以及哪些浏览器支持以数字开头的类名。
要在 CSS 类选择器中引用此类名称,您需要使用转义。例如。:
<div class="1blah/bläh">
匹配:
.\31 blah\2F bläh { ... }
所有当前的浏览器都支持这一点。IE5 不支持它,但幸运的是,这不再是一个问题。(如果您担心字符编码不匹配,您可能更喜欢将ä
as编码\E4
,但这并不是 CSS 本身的限制。)
如果您询问哪些浏览器可以让您摆脱无效的选择器
.1blah/bläh
那么,谁在乎呢?只需使用有效的。
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 的)
/ 和其他符号用作选择器(尤其是在 CSS3 中),因此不能在类名中使用。支持的字符是您已经说过的字符。