CSS选择器中的空格是什么意思?即.classA.classB和.classA .classB有什么区别?


104

这两个选择器有什么区别?

.classA.classB {
  border: 1px solid;
}

.classA .classB {
  border: 1px solid;
}

Answers:


103

.classA.classB指同时具有类A和B(class="classA classB")的元素;而则.classA .classB是指具有的元素的class="classB"后继元素class="classA"

编辑:参考规范:属性选择器(请参阅第5.8.3节“类选择器”)


42

像这样的样式要普遍得多,并且将定位在嵌套在“ classA”类的任何类型的元素内的任何类型的“ classB”类的元素。

.classA .classB {
  border: 1px solid; }

例如,它将在以下方面起作用:

<div class="classA">
  <p class="classB">asdf</p>
</div>

但是,该对象的目标是“ classA”类和“ classB”类的任何类型的元素。这种样式不太常见,但在某些情况下仍然有用。

.classA.classB {
  border: 1px solid; }

这将适用于以下示例:

<p class="classA classB">asdf</p>

但是,它不会对以下内容产生影响:

<p class="classA">fail</p>
<p class="classB">fail</p>

(请注意,当HTML元素具有多个类时,它们之间用空格隔开。)


1
显示失败的案例很有帮助。
Hal50000

-1

.classA.classB这意味着将同时选择两个类名都相同.classA .classB的元素,而这意味着仅选择classB内部具有类名的元素classA


2
这是正确的,但是这个问题已经在十年前得到了正确的回答。它实际上并不需要新的答案。
Brilliand
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.