CSS选择器中的特殊字符

CSS选择器中的特殊字符,css,special-characters,Css,Special Characters,我在中找到了这个CSS定义。他们广泛使用这种风格 .ui.\32.buttons > .button, .ui.two.buttons > .button { width: 50%; } 我能看出他们在努力完成什么。 他们希望CSS的定义是可读的 .ui.2.buttons > .button, 它必须是ASCII码。代码\32将是一个空格。代码\3将是“文本的开始” 你能解释一下这里发生了什么吗?为什么ascii不转换为空格? 为什么用户可以毫无错误地接受此CSS?\

我在中找到了这个CSS定义。他们广泛使用这种风格

.ui.\32.buttons > .button,
.ui.two.buttons > .button {
  width: 50%;
}
我能看出他们在努力完成什么。 他们希望CSS的定义是可读的

.ui.2.buttons > .button,
它必须是ASCII码。代码\32将是一个空格。代码\3将是“文本的开始”

你能解释一下这里发生了什么吗?为什么ascii不转换为空格? 为什么用户可以毫无错误地接受此CSS?

\32
是十六进制32,它转换为十进制数字50,实际上是字符
2
<代码>\31将是
1

我从W3C规范中找到了这句话:

在CSS2中,标识符(包括中的元素名、类和ID) 选择器)只能包含字符[A-Za-z0-9]和ISO 10646 字符161及以上,加上连字符(-);他们不能从一开始 连字符或数字。它们还可以包含转义字符和任何 ISO10646字符作为数字代码(见下一项)。例如, 标识符“B&W?”可以写为“B\&W\?”或“B\26 W\3F”


我找到了将其置于上下文中的引号,但它归结为这样一个事实:尽管通常类名不能以数字开头,但当数字作为转义字符或(在本例中)字符输入时是允许的。

他们甚至使用
.ui.\31\32.buttons>.button
。我真的很想知道这是怎么回事。从技术上讲,类名不应该以数字开头,因此
.2
将是一个错误。(实际上,浏览器似乎并不介意。)顺便说一句,这是一个十六进制数,而不是十进制数。这正是我所假设的,但却找不到证据!竖起大拇指!