假设我有以下代码:
<div class="container">
<div></div>
<div></div>
<div></div>
</div>
如何在不给元素命名class或id,甚至不使用style=""的情况下,使用CSS选择器选中"container"内的每个实例?
提前感谢!
<div class="container">
<div></div>
<div></div>
<div></div>
</div>
如何在不给元素命名class或id,甚至不使用style=""的情况下,使用CSS选择器选中"container"内的每个实例?
提前感谢!
解决方案1:直接子元素选择器
您需要使用CSS选择器>
。这将针对所有直接子元素。
例如:
.className > element {
}
.container > div {
height: 40px;
width: 100%;
background-color: orange;
margin:10px;
}
<div class="container">
<div></div>
<div></div>
<div></div>
</div>
解决方案2:嵌套子元素选择器
你也可以按照以下方式使用它:
.className element {
}
.container div {
background-color: orange;
height: 30px;
width: 100%;
margin: 10px;
}
<div class="container">
<div></div>
<div></div>
<div></div>
</div>
这个选择器和之前的选择器略有不同。区别在于它将选择所有直接父级为immediate
divs
的 divs
(包括嵌套的子元素)。要理解其效果,请参见下面:
.container div {
background-color: orange;
height: 30px;
width: 100%;
margin: 10px;
}
<div class="container">
<div></div>
<div></div>
<div>
<div></div>
<div></div>
<div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
</div>
</div>
解决方案3:特定子元素选择器(nth-child)
如果您只想选择特定/特定集合的直接子元素,可以使用以下nth-child选择器:
.className > element:nth-child(n) {
}
请见下文:
.container > div {
background-color: orange;
height: 30px;
width: 100%;
margin: 10px;
}
.container > div:nth-child(3n+1) {
background-color: red;
}
<div class="container">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
解决方案4:嵌套的特定子选择器(nth-child)
最后,您可以结合上述选择器来针对特定的子元素以及子元素的子元素,如下所示:
.className > element:nth-child(n) {
}
请看下面:
.container div {
background-color: orange;
height: 30px;
width: 100%;
margin: 10px;
}
.container div:nth-child(3n+1) {
background-color: red;
}
<div class="container">
<div></div>
<div></div>
<div></div>
<div></div>
<div>
<div></div>
<div></div>
<div></div>
<div></div>
<div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
</div>
</div>
divs
,而不需要在它们上面显式地提及id
或class
,顺便说一下,这也是最初的问题? - Satwik Nadkarnynth-of-type(n)
或nth-child(n)
都可以使用。
请参阅MDN文档
.container div:nth-of-type(2) {
/* selects the second one */
color: red;
}
<div class="container">
<div>test</div>
<div>test</div>
<div>test</div>
</div>
编辑:哎呀!看起来我和Satwik Nadkarny都以不同的方式理解了你的问题。在我的答案中可能使用>
是个好主意(使它成为.container > div:nth-of-type(2)
),以避免选择第一组嵌套的div。