CSS :nth-child() 伪类

定义和用法

CSS :nth-child(n) 伪类用于匹配作为其父元素第 n 个子元素的任何元素。

此伪类根据元素在其父元素的子列表中的索引来匹配元素。

n 可以是一个数字/索引、一个关键字(oddeven)或一个公式(如 an + b)。

提示:查看 :nth-of-type() 伪类以选择作为其父元素中同类型(标签名)的第 n 个子元素的元素。

实例

例子 1

如何使用 :nth-child() 伪类:

/* 选择任何兄弟元素组中的每第四个元素 */
:nth-child(4) {
  background-color: yellow;
}

/* 选择 div 兄弟元素中的第二个元素 */
div:nth-child(2) {
  background-color: red;
}

/* 选择列表中的第二个 li 元素 */
li:nth-child(2) {
  background-color: lightgreen;
}

亲自试一试

例子 2

oddeven 是关键字,可用于匹配索引为奇数或偶数的子元素(第一个子元素的索引为 1)。

在这里,我们为奇数索引和偶数索引的 <p> 元素指定不同的背景颜色:

p:nth-child(odd) {
  background-color: red;
}

p:nth-child(even) {
  background: lightgreen;
}

亲自试一试

例子 3

使用公式(an + b)。描述:a 表示整数步长,n 是从 0 开始的所有非负整数,b 是整数偏移量。

在这里,我们为索引是 3 的倍数的所有 <p> 元素指定背景颜色(将选择第三个、第六个、第九个等元素):

p:nth-child(3n+1) {
  background-color: red;
}

亲自试一试

例子 4

在这里,我们为索引是 3 的倍数的所有 <p> 元素指定背景颜色。然后我们减去 1(将选择第一个、第四个、第七个等元素):

p:nth-child(3n-1) {
  background-color: red;
}

亲自试一试

CSS 语法

:nth-child(index | odd | even | an+b) {
  css declarations;
}

技术细节

版本: CSS3

浏览器支持

表格中的数字指定了完全支持该伪类的首个浏览器版本。

Chrome Edge Firefox Safari Opera
4.0 9.0 3.5 3.2 9.6