nth-child 是 CSS 里,一个不太注目、但在某些场景下很实用的选择器,本文记录码者搬砖过程中使用 nth-child 的一些案例。
选择器是什么
类似:
- #container => 选择页面上 id 为 container 的元素
- .wrapper => 选择别面上 class 为 wrapper 的元素
- p => 选择页面上所有 p 元素
- …
nth-child 同以上这些一样,只不过没那么常见。
如何使用
案例一
- nth-child 是一个伪类选择器,选择的结果是某种元素的第 n 个子元素。
- 类似 hover,要在它前面加个冒号
- 具体写法是
.item:nth-child(2)
,表示选择 class 为 item 且是父元素中第二个子元素的目标
<style>
.item{
background: #000;
margin: 10px;
height: 50px;
}
.item:nth-child(2){
background: #f00;
}
</style>
<body>
<div class="wrapper">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
</body>
注 子元素从第一个开始而不是第零个
案例二
- nth-child 的括号里还支持一个表达式
- 比如
.item:nth-child(2n+1)
代表:class 为 item、且在父元素的排在第 2n+1 个的元素(n 取值为:0,1,2,3,…)也就是第奇数个元素
<style>
.item{
background: #000;
margin: 10px;
height: 50px;
}
.item:nth-child(2n+1){
background: #f00;
}
</style>
<body>
<div class="wrapper">
<div class="item"></div>
<div class