一尘不染

CSS类名称/选择器中哪些字符有效?

css

CSS 类选择器中允许使用哪些字符/符号?
我知道以下字符 无效 ,但是哪些字符 有效

~ ! @ $ % ^ & * ( ) + = , . / ' ; : " ? > < [ ] \ { } | ` #

阅读 533

收藏
2020-05-16

共1个答案

一尘不染

您可以直接在CSS语法中进行检查。

基本上, 1,名称必须以下划线(_),连字符(-)或字母(a
z)开头,后跟任意数量的连字符,下划线,字母或数字。有一个陷阱:如果第一个字符是连字符,第二个字符必须2是字母或下划线,并且名称必须至少2个字符长。

-?[_a-zA-Z]+[_a-zA-Z0-9-]*

简而言之,从W3C规范中提取的先前规则转化为以下规则。

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

以连字符或下划线开头的标识符通常保留给特定于浏览器的扩展名,如中所述-moz-opacity

1由于包含转义的unicode字符(没有人真正使用过),这一切都变得更加复杂。

2请注意,根据我链接的语法,以两个连字符(例如)开头的规则--indent1无效。但是,我很确定我已经在实践中看到了这一点。

2020-05-16