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

hso*_*bhy 22 css css-selectors

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

.000000-8 {background:url(../../images/common/000000-0.8.png);}
.8FFFFFF {background:url(../../images/common/FFFFFF-0.8.png);}
Run Code Online (Sandbox Code Playgroud)

在我所拥有的大多数浏览器中都不起作用,CSS语法表明,但我的问题是有一个解决方法,使名称以数字开头的CSS类有效吗?.

Juk*_*ela 36

没有CSS类.问题从逻辑上分为两个问题:你可以用HTML中的数字开始一个类名,并且(假设答案是"是",如果是这样的话),你如何在CSS中使用相应的类选择器?

各种HTML规范对类名施加了各种限制,但在浏览器实践中,根据HTML5,除了类名不能包含空格字符外,没有任何限制.所以class=000000-8是有效的.

通过CSS语法规则,CSS标识符不能与未转义的数字一起使用.因此,类似的选择器.000000-8无效.但是数字可以通过CSS转义规则进行转义:选择器

.\30 00000-8
Run Code Online (Sandbox Code Playgroud)

或者,等效地,

.\00003000000-8 
Run Code Online (Sandbox Code Playgroud)

是有效的,并与元素匹配class=000000-8.

毋庸置疑,最好避免使用以数字开头的类名,但如果必须使用它们(例如,因为某些HTML文档具有它们而您无法更改标记),这就是方法.


Mar*_*zek 10

是的,它在CSS规范中有记录:

在CSS中,标识符(包括选择器中的元素名称,类和ID)只能包含字符[a-zA-Z0-9]和ISO 10646字符U+00A0及更高字符,以及连字符(-)和下划线(_); 它们不能以数字,两个连字符或连字符后跟数字开头.标识符还可以包含转义字符和任何ISO 10646字符作为数字代码(请参阅下一项).例如,标识符" B&W?"可以写为" B\&W\?"或" B\26 W\3F".