是否在名称以数字开头的CSS类不起作用的地方引用? 例如,我发现了一个背景类如:
.000000-8 {background:url(../../images/common/000000-0.8.png);}
.8FFFFFF {background:url(../../images/common/FFFFFF-0.8.png);}
在我拥有的大多数浏览器中都不起作用,CSS grammar显示但是我的问题是解决方法来制作名称以数字开头有效的CSS类吗?
答案 0 :(得分:35)
没有CSS类。问题从逻辑上分为两个问题:你可以用HTML中的数字开始一个类名,并且(假设答案是“是”,如果是这样的话),你如何在CSS中使用相应的类选择器? / p>
各种HTML规范对类名施加了各种限制,但在浏览器实践中,根据HTML5,除了类名不能包含空格字符外,没有任何限制。所以class=000000-8
有效。
根据CSS语法规则,CSS标识符不能与未转义数字一起使用。因此,.000000-8
之类的选择器无效。但是,数字可以通过CSS escaping rules:选择器
.\30 00000-8
或等同地
.\00003000000-8
有效且与class=000000-8
的元素匹配。
毋庸置疑,最好避免使用以数字开头的类名,但是如果你必须使用它们(例如,因为某些HTML文档有它们并且你不能更改标记),这就是方法。
答案 1 :(得分:10)
是的,它记录在CSS specification:
中在CSS中,标识符(包括元素名称,类和ID) 选择器)只能包含字符
[a-zA-Z0-9]
和ISO 10646 字符U+00A0
和更高,加上连字符(-
)和下划线 (_
); 他们不能以数字,两个连字符或后面的连字符开头 用数字。标识符还可以包含转义字符和任何字符 ISO 10646字符作为数字代码(参见下一项)。例如, 标识符“B&W?
”可以写为“B\&W\?
”或“B\26 W\3F
”。