我正在使用一个具有相当复杂CSS的网站的模板。
.container.\31 25\25 {
width: 100%;
max-width: 1200px;
min-width: 960px;
}
什么是"。\ 31 25 \ 25"容器类之后?容器类的许多其他版本包含不同的数字。
答案 0 :(得分:1)
容器类之后的
.\31 25\25
是什么?
它引用名为125%
的类,将在HTML中引用为
<div class="125%">
以下是它如何分解:
.\31 25\25 {
^^^ ESCAPE SEQUENCE FOR DIGIT 1
^ SPACE TO TERMINATE ESCAPE SEQUENCE
^^ LITERAL "25"
^^^ ESCAPE SEQUENCE FOR %
这种转义在CSS中是必要的,因为CSS具有&#34; CSS标识符&#34;的概念。它适用于类名(以及ID),CSS标识符既不能以数字开头,也不能包含%
等字符。请注意,HTML类名称以1
开头或包含%
本身没有任何问题,但在CSS中编写时,必须像在此处一样对其进行转义。除非用于分隔类名的空格字符,否则您可以在类名中包含任何字符(如果已转义)。
来自spec:
标识符还可以包含转义字符和任何ISO 10646字符作为数字代码
反斜杠转义允许作者引用他们无法轻易放入文档中的字符。在这种情况下,反斜杠后跟最多六个十六进制数字(0..9A..F),它代表带有该数字的ISO 10646([ISO10646])字符
如果[0-9a-fA-F]范围内的字符跟随十六进制数字,则需要清除数字的结尾。有两种方法可以做到这一点:使用空格,或者提供六位十六进制数字。
换句话说,上面的内容也可以写成
\00003125\25
省略31
之后的空格,因为已经指定了完整的六个十六进制数字。
实际上,您不需要使用ASCII代码来表示百分号;相反,这也可以(稍微)更可读地编写为
\31 25\%
直接转出百分号。
我将把它留给CSS语言专家来讨论是否使用带有前导数字的类名,或者包含非标准字符,应该被视为最佳实践。就个人而言,我认为没有错。