【发布时间】:2010-11-10 17:05:32
【问题描述】:
这两个选择器有什么区别?
.classA.classB {
border: 1px solid;
}
.classA .classB {
border: 1px solid;
}
【问题讨论】:
标签: css css-selectors
这两个选择器有什么区别?
.classA.classB {
border: 1px solid;
}
.classA .classB {
border: 1px solid;
}
【问题讨论】:
标签: css css-selectors
.classA.classB 指的是同时具有 A 类和 B 类的元素 (class="classA classB");而.classA .classB 指的是一个带有class="classB" 的元素,它是一个带有class="classA" 的元素的后代。
编辑:参考规范:Attribute Selectors(参见第 5.8.3 节类选择器)
【讨论】:
这样的样式更为常见,并且可以针对嵌套在“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 元素有多个类时,它们之间用空格分隔。)
【讨论】:
.classA.classB 表示将选择具有两个类名的元素,而.classA .classB 表示仅选择classA 内的类名为classB 的元素。
【讨论】: