Sam*_* A. 5 css css-selectors css3
我可以在一个有不同类别孩子的div中选择一个班级的第一个和最后一个孩子吗?
例如:
<div class="main">
<div class="red"></div>
<div class="red"></div>
<div class="red"></div>
<div class="black"></div>
<div class="black"></div>
<div class="black"></div>
<div class="green"></div>
<div class="green"></div>
<div class="green"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
我想选择第一个孩子和最后一个孩子.black.那可能吗?
使用nth-child或nth-of-type与类选择器结合使用。
.main .black:nth-child(2n) {
color: yellow;
}
Run Code Online (Sandbox Code Playgroud)
或者如果您希望它们分开
.main .black:nth-child(5n - 6) {
color: yellow;
}
.main .black:nth-child(5n - 4) {
color:purple;
}
Run Code Online (Sandbox Code Playgroud)
该函数使用 进行计算n = element of type,因此:nth-child(n)将选择每个元素、:nth-child(2n)选择所有奇数元素、:nth-child(2n-1)选择所有偶数元素,依此类推。你只需要想出一个函数来获取你想要的元素
另一种选择可能是将另一个类添加到类的第一个和/或最后一个元素
您可以通过组合两个选择器(如乔纳森所说)(我个人更喜欢)来选择具有动态数量的元素的第一个子级div:not(.black) + div.black。然而,在没有前一个同级选择器的情况下,选择具有动态数量元素的类的最后一个元素的唯一方法是使用 Javascript 或像 jQuery 这样的库,如下所示:
JavaScript
var blackElems = document.getElementsByClassName('black');
blackElems[blackElems.length - 1].style.color = 'purple';
Run Code Online (Sandbox Code Playgroud)
jQuery
$('.main .black:last').css({ 'color' : 'purple' });
Run Code Online (Sandbox Code Playgroud)