在Selectors Level 4最新版本:CSS类选择器,id选择器的语法?
类选择被给定为一个句号(。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标识符可以从两个连字符开始,并且g ID选择器的rammar与散列标记的语法矛盾。
我应该遵循哪些定义?
UPDATE:
我错过了在Grammar部分的底部的行:
在< ID-选择>,所述<散列令牌>的值必须是一个identifier。
CSS变量使得这个更加混乱。看到我对[这个问题]的答案(http://stackoverflow.com/questions/30819462/can-css-identifiers-begin-with-two-hyphens)。 – BoltClock
[CSS的标识符是否可以以两个连字号开头?](http://stackoverflow.com/q/30819462/1529630) – Oriol