是否有一种解决方法可以使名称以数字开头的CSS类有效?

时间:2014-01-20 06:40:05

标签: css css-selectors

是否在名称以数字开头的CSS类不起作用的地方引用? 例如,我发现了一个背景类如:

.000000-8 {background:url(../../images/common/000000-0.8.png);}
.8FFFFFF {background:url(../../images/common/FFFFFF-0.8.png);}

在我拥有的大多数浏览器中都不起作用,CSS grammar显示但是我的问题是解决方法来制作名称以数字开头有效的CSS类吗?

2 个答案:

答案 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”。