根据 CSS Level 3 specification,解析标识符的开头时,您需要:
检查三个码点是否可以作为标识符的开头。
查看第一个码点:
如果第一个字符是“-”,则以下情况下我们有一个有效的标识符:
第二个码点是标识符起始码点(
第二个码点是“-”。
第二和第三个字符组成一个有效的转义。
否则,我们没有有效的标识符开头。在确定我们是否有有效的标识符开头后,要获得有效的
转义标记
ASCII 字母
数字
由于我们不需要在标识符开始标记后面添加任何字符,这意味着
检查三个码点是否可以作为标识符的开头。
查看第一个码点:
如果第一个字符是“-”,则以下情况下我们有一个有效的标识符:
第二个码点是标识符起始码点(
[a-zA-Z_]
或非 ASCII 码点)。第二个码点是“-”。
第二和第三个字符组成一个有效的转义。
否则,我们没有有效的标识符开头。在确定我们是否有有效的标识符开头后,要获得有效的
<ident-token>
,唯一的要求是我们具有以下任意组合的 0 个或多个:转义标记
ASCII 字母
数字
_
或 -
非 ASCII 字符由于我们不需要在标识符开始标记后面添加任何字符,这意味着
--
是一个有效的标识符,即使它从未被任何浏览器或框架支持过。然而,即使是由设计 CSS 规范的人员维护的官方 CSS 验证 services,也不认为这是一个有效的标识符。这只是验证服务中的一个 bug 吗?
body
的背景设置为red
几乎总是一个好的实践。 - But those new buttons though..