当前位置: 首页 > 面试题库 >

.container。\ 31 25 \ 25在CSS中是什么意思?

秦才良
2023-03-14
问题内容

在下面的代码中,我想知道\反斜杠可能意味着什么?我上过的课没有遇到反斜杠字符。我相信,这段代码用于识别浏览器的大小。

.container.\31 25\25 {
  width: 100%;
  max-width: 1500px;  /* max-width: (containers * 1.25) */
  min-width: 1200px;  /* min-width: (containers) */
}
.container.\37 5\25 { /* 75% */
  width: 900px;       /* width: (containers * 0.75) */
}
.container.\35 0\25 { /* 50% */
  width: 600px;       /* width: (containers * 0.50) */
}
.container.\32 5\25 { /* 25% */
  width: 300px;       /* width: (containers * 0.25) */
}

问题答案:

根据规范,

标识符还可以包含转义字符和任何ISO 10646字符作为数字代码(请参阅下一项)。例如,标识符“ B&W?” 可以写为“ B \&W \?” 或“ B
\ 26 W \ 3F”。[…]

在CSS
2.1中,反斜杠(\)字符可以表示三种类型的字符转义符之一。在CSS注释中,反斜杠代表自己,如果在样式表的末尾紧跟一个反斜杠,则它也代表自己(即DELIM标记)。

首先,在字符串中,将忽略反斜杠后跟换行符(即,该字符串被视为不包含反斜杠或换行符)。在字符串的外部,反斜杠代表换行符(即,DELIM和换行符)。

其次,它取消了特殊CSS字符的含义。任何字符(十六进制数字,换行符,回车符或换页符除外)都可以使用反斜杠转义以删除其特殊含义。例如,“
\”“是一个由双引号引起来的字符串。样式表预处理器不得从样式表中删除这些反斜杠,因为这会改变样式表的含义。

第三,反斜杠转义符使作者可以引用他们不容易放入文档中的字符。在这种情况下,反斜杠后面最多包含六个十六进制数字(0..9A..F),代表具有该数字的ISO
10646([ISO10646])字符,该数字不能为零。(在CSS
2.1中未定义,如果样式表确实包含Unicode码为零的字符,会发生什么。)如果范围[0-9a-fA-F]内的字符跟随十六进制数,则该数字的末尾需要弄清楚。有两种方法可以做到这一点:

  1. 带有空格(或其他空格字符):“ \ 26 B”(“&B”)。在这种情况下,用户代理应将“ CR / LF”对(U + 000D / U +
    000A)视为单个空格字符。
  2. 通过提供恰好6个十六进制数字:“ \ 000026B”(“&B”)

实际上,这两种方法可以结合使用。十六进制转义后,仅忽略一个空格字符。请注意,这意味着转义序列后的“实际”空间必须加倍。

如果数字超出Unicode允许的范围(例如,“ \ 110000”大于当前Unicode允许的最大10FFFF),则UA可以使用“替换字符”(U +
FFFD)替换转义符。如果要显示字符,则UA应该显示可见的符号,例如“缺少字符”字形(参见15.2,第5点)。

因此,以下是等效的:

.container.\31 25\25   <-->   .container[class ~= "125%"]
.container.\37 5\25    <-->   .container[class ~= "75%"]
.container.\35 0\25    <-->   .container[class ~= "50%"]
.container.\32 5\25    <-->   .container[class ~= "25%"]

请注意,转义很重要,否则它们将不是有效的标识符(强调我的):

在CSS中, 标识符 (包括选择器中的元素名称,类和ID
)只能包含字符[a-zA-Z0-9]和ISO 10646字符U + 00A0及更高版本,以及连字符(-)和下划线( _); 它们 不能以数字
,两个连字符或以数字开头的连字符开头。

因此,以下内容无效:

.container.125%
.container.75%
.container.50%
.container.25%

也许这个小提琴可能更清楚:

.container {

  background: red;

  margin: 10px;

}

.container.\31 25\25 { /* 125% */

  width: 100%;

  max-width: 1500px;  /* (containers * 1.25) */

  min-width: 1200px;  /* (containers * 1.00) */

}

.container.\37 5\25 { /* 75% */

  width: 900px;       /* (containers * 0.75) */

}

.container.\35 0\25 { /* 50% */

  width: 600px;       /* (containers * 0.50) */

}

.container.\32 5\25 { /* 25% */

  width: 300px;       /* (containers * 0.25) */

}


<div class="container 125%">125%</div>

<div class="container 75%">75%</div>

<div class="container 50%">50%</div>

<div class="container 25%">25%</div>


 类似资料:
  • 问题内容: 什么是在这个CSS规则是什么意思? 问题答案: 是相邻的同级组合器。 这意味着选择只选择自带 之后 的。 插图: 选择了什么,没有选择什么: 选择 这个来之后第一。 未选择 这出现在第一后而不是在。由于它不会立即跟随,因此未选中。 但是,由于它仍然紧随元素之后,选择器不会立即匹配此元素,而是将使用通用的同级组合器来匹配该元素。 未选择 这位于内,并且在引号内没有满足其选择器的内容。

  • 问题内容: CSS是什么意思? CSS 2中可用吗?CSS 3? 在哪里支持?所有现代浏览器? 问题答案: 从本质上讲,它的意思是说。“这很重要,请忽略后续规则,以及所有常见的特异性问题,请应用 此 规则!” 在正常使用中,外部样式表中定义的规则被文档中定义的样式所取代,而样式本身又被元素本身内的内联样式所取代(假设选择器的特异性相同)。用“属性”(?)定义规则将放弃关于“后继”规则优先于“较早”

  • 问题内容: 有人可以解释这两个CSS选择器的区别吗? 上定义中的多余点是什么? 问题答案: 一个前缀通常代表一类选择,但如果它紧跟空格那么它是一个语法错误。 如果要冒昧地猜测一下,那么可能是作者想要说的,但是错过了Shift键,就像他正要键入字符(子组合器)一样。 您的第二个选择器,仅表示包含在名为的类的元素中的任何选择器。

  • 今天我遇到一些代码,作者将长度声明为 css: html/svg: 我写CSS已经很多年了,我从来没有见过这样声明的长度。它似乎在HTML、SVG和CSS中都起作用。 是某种形式的速记吗?这是什么意思?我试着寻找答案,但这个话题的性质让我很难找到答案。 原始代码:

  • 问题内容: CSS 中的双冒号()是什么意思? 例如: 问题答案: 这意味着 伪元素 选择器。这意味着右边的 元素 在普通DOM中不存在,但是可以选择。 伪元素由两个冒号(::)组成,后跟伪元素的名称。 它最初只有一个冒号,而是改为从区分其 伪类 (如,,等)。最好使用for 和伪元素,因为单个冒号具有更好的浏览器支持,即在较早的IE版本中。

  • 问题内容: 我今天在看一个css文件,发现以下规则集: 星号在 padding和 line-height中是什么意思? 谢谢。 问题答案: 这是“star property hack”,与“underscore hack.”相同。它在IE忽略的属性之前包括垃圾(*最多适用于IE 7,_最多适用于IE 6)。