如其他地方详细描述的here,html/css类名中唯一有效的字符是a-z,A-Z,0-9,连字符和下划线,并且第一个字符应该是字母。但实际上,大多数浏览器实际上支持哪些字符?更具体地说,我不知道浏览器能够正确理解类名称中的斜杠(/),以及哪些浏览器支持以数字开头的类名称。CSS类名中广泛支持哪些字符?
我主要感兴趣的是获得html而不是xhtml的答案,以防有所不同。
谢谢。
如其他地方详细描述的here,html/css类名中唯一有效的字符是a-z,A-Z,0-9,连字符和下划线,并且第一个字符应该是字母。但实际上,大多数浏览器实际上支持哪些字符?更具体地说,我不知道浏览器能够正确理解类名称中的斜杠(/),以及哪些浏览器支持以数字开头的类名称。CSS类名中广泛支持哪些字符?
我主要感兴趣的是获得html而不是xhtml的答案,以防有所不同。
谢谢。
注该类名是由HTML定义的,而不是CSS。 HTML4 saysclass
属性是cdata-list
,它是空格分隔的令牌。因此,一个类名标记可以包含除空白字符以外的任何字符。
我不知道浏览器能够正确理解类名中的斜杠(/),以及哪些浏览器支持以数字开头的类名称。
要在CSS类选择器中引用这样的名称,您需要使用转义。
.\31 blah\2F bläh { ... }
这是由所有当前的浏览器支持:如:
<div class="1blah/bläh">
是匹配的。它没有得到IE5的支持,但幸好这不再是一个问题。 (如果您担心字符编码不匹配,您可能更愿意将ä
编码为\E4
,但这不是CSS的限制。)
如果您询问哪些浏览器会让您无效选择器
.1blah/bläh
那么,那么,谁在乎呢?只需使用有效的。
+1,我很乐意给你一个单独的最后一行! – 2010-04-11 14:23:52
有效的类名* *由CSS定义。但那些在HTML中也是有效的只是这些的一个子集。请注意,CSS是一种可用于任何结构化语言而不仅仅是HTML的样式表语言。 – Gumbo 2010-04-11 14:26:34
谢谢bobince,那为我解决了问题!我最初命名这个问题“HTML类名中广泛支持哪些字符?”但有人将“HTML”改为“CSS”。在这种情况下,对我来说重要的是让HTML可读而不会冒险,所以这对我有很大的帮助。在这种情况下,IE5中断可能不是问题。谢谢! – 2010-04-11 15:22:56
/和其他符号被用作选择器(特别是在CSS3中),所以不能在类名中使用。支持的字符是你已经说过的。
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)
这并不能解释实际支持哪些字符或序列。是否支持'.foo \ bar','。\ /'或'。\ 1234'? – Gumbo 2010-04-11 14:06:16
没有土特产品只是说, “A-Z,A = Z,0-9,= _”? – 2010-04-11 13:41:10
这些是有效的字符,但实际上其他字符至少也支持某些浏览器。我想知道除了有效字符(如果有的话)之外哪些字符可以可靠地使用。 – 2010-04-11 13:43:46
为什么不打开记事本并给它一个测试... – bigstylee 2010-04-11 13:57:28