CSS类名中的反斜杠是什么

时间:2016-02-01 01:36:15

标签: html css

我正在使用一个具有相当复杂CSS的网站的模板。

.container.\31 25\25 {
    width: 100%;
    max-width: 1200px;
    min-width: 960px;
}

什么是"。\ 31 25 \ 25"容器类之后?容器类的许多其他版本包含不同的数字。

1 个答案:

答案 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语言专家来讨论是否使用带有前导数字的类名,或者包含非标准字符,应该被视为最佳实践。就个人而言,我认为没有错。