是否有任何参考资料表明名称以数字开头的CSS类无法使用? 例如,我发现一个带有背景的类:
.000000-8 {background:url(../../images/common/000000-0.8.png);}
.8FFFFFF {background:url(../../images/common/FFFFFF-0.8.png);}
我拥有的大多数浏览器都无法工作,CSS语法也显示了这一点,但我的问题是是否有解决方法可以使以数字开头的CSS类名有效?。
是否有任何参考资料表明名称以数字开头的CSS类无法使用? 例如,我发现一个带有背景的类:
.000000-8 {background:url(../../images/common/000000-0.8.png);}
.8FFFFFF {background:url(../../images/common/FFFFFF-0.8.png);}
我拥有的大多数浏览器都无法工作,CSS语法也显示了这一点,但我的问题是是否有解决方法可以使以数字开头的CSS类名有效?。
没有CSS类。这个问题从逻辑上分成两个问题:在HTML中你可以以数字开头的类名,如果可以(答案是“是”,因为它是),那么如何在CSS中使用相应的类选择器呢?
各种HTML规范对类名施加各种限制,但在浏览器实践和HTML5中,除了类名不能包含空格字符外,没有其他限制。 所以 class=000000-8
是有效的。
CSS语法规则规定,CSS标识符不能以未转义的数字开头。 因此,像 .000000-8
这样的选择器是无效的。但是数字可以通过CSS转义规则进行转义:选择器为
.\30 00000-8
或者等价地说,
.\00003000000-8
是有效的且匹配具有 class=000000-8
的元素。
不用说,以数字开头的 class 名最好避免使用,但如果必须使用它们(例如因为某些 HTML 文档使用了它们,而且您无法更改标记),那就是这种方式。
是的,它在CSS规范中有记录:
CSS中,标识符(包括选择器中的元素名称、类和ID)只能包含字符
[a-zA-Z0-9]
和ISO 10646字符U+00A0
及更高版本,还可以包括连字符(-
)和下划线(_
); 不能以数字、两个连字符或连字符后跟数字开头。 标识符还可以包含转义字符和任何ISO 10646字符作为数字代码(参见下一项)。例如,标识符“B&W?
”可以写成“B\&W\?
”或“B\26 W\3F
”。