在Selectors Level 4的最新版本中:
类选择器是一个句号(。U + 002E),紧接着是一个标识符。
ID选择器由一个“数字符号”(U + 0023,#)组成,后面紧跟ID值,该值必须是CSS identifier。
在上面的标识符链接中:
在CSS中,标识符(包括选择器中的元素名称,类和ID)只能包含字符[a-zA-Z0-9]和ISO 10646字符U + 00A0及更高,加上连字符( - )和下划线(_); 不能以数字开头,两个连字符,或连字符后跟数字。
然而,在同一规范中,Grammar部分:
<class-selector> = '.' <ident-token>
<id-selector> = <hash-token>
从上面的令牌链接可以看出,语法图明确指定CSS标识符可以以两个连字符开头,并且ID选择器的语法与哈希的语法相矛盾 - 令牌。
我应该遵循哪些定义?
更新:
我错过了Grammar部分底部的一行:
在&lt; id-selector&gt;中,&lt; hash-token&gt;的值必须为identifier。
答案 0 :(得分:1)
hash-token
图表必须是错误的,正如您所引用的那样:
选择器(...)中的元素名称,类和ID不能以数字,两个连字符或连字符后跟数字开头
非常明确