CSS 参考手册

CSS @规则(RULES)

CSS 属性大全

CSS3 :nth-child() 选择器

:nth-child(an+b) 这个 CSS 伪类首先找到所有当前元素的兄弟元素,然后按照位置先后顺序从1开始排序,选择的结果为CSS伪类:nth-child括号中表达式(an+b)匹配到的元素集合(n=0,1,2,3...)。示例:
    0n+3 或简单的 3 匹配第三个元素。
    1n+0 或简单的 n 匹配每个元素。(兼容性提醒:在 Android 浏览器 4.3 以下的版本 n 和 1n 的匹配方式不一致。1n 和 1n+0 是一致的,可根据喜好任选其一来使用。)
    2n+0 或简单的 2n 匹配位置为 2、4、6、8...的元素(n=0时,2n+0=0,第0个元素不存在,因为是从1开始排序)。你可以使用关键字 even 来替换此表达式。
    2n+1 匹配位置为 1、3、5、7...的元素。你可以使用关键字 odd 来替换此表达式。
    3n+4 匹配位置为 4、7、10、13...的元素。
a 和 b 都必须为整数,并且元素的第一个子元素的下标为 1。换言之就是,该伪类匹配所有下标在集合 { an + b; n = 0, 1, 2, ...} 中的子元素。另外需要特别注意的是,an 必须写在 b 的前面,不能写成 b+an 的形式。

完整CSS选择器参考手册

在线示例

指定每个 p 元素匹配的父元素中第 2 个子元素的背景色:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>基础教程(nhooo.com)</title> 
<style> 
p:nth-child(2)
{
 background:orange;
}
</style>
</head>
<body>
<h1>这是一个标题</h1>
<p>这是第一个段落。</p>
<p>这是第二个段落。</p>
<p>这是第三个段落。</p>
<p>这是第四个段落。</p>
<p><b>注意:</b> Internet Explorer 8 以及更早版本的浏览器不支持 :nth-child()选择器.</p>
</body>
</html>
测试看看 ‹/›

定义和用法

:nth-child(n) 选择器匹配父元素中的第 n 个子元素,元素类型没有限制。

n 可以是一个数字,一个关键字,或者一个公式。

提示: 请参阅选择器。该选择器匹配同类型中的第 n 个同级兄弟元素。

nth-child选择器示例

tr:nth-child(2n+1)
    表示HTML表格中的奇数行。

tr:nth-child(odd)
    表示HTML表格中的奇数行。

tr:nth-child(2n)
    表示HTML表格中的偶数行。

tr:nth-child(even)
    表示HTML表格中的偶数行。

span:nth-child(0n+1)
    表示子元素中第一个且为span的元素,与 :first-child 选择器作用相同。

span:nth-child(1)
    表示父元素中子元素为第一的并且名字为span的标签被选中

span:nth-child(-n+3)
    匹配前三个子元素中的span元素。

浏览器兼容性

表格中的数字表示支持该属性的第一个浏览器版本号。

选择器




:nth-child()4.09.03.53.29.6

示例 1

奇数和偶数是可以作为关键字使用用于相匹配的子元素,其索引是奇数或偶数(该索引的第一个子节点是1)。 在这里,我们为奇数和偶数p元素指定两个不同的背景颜色:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>基础教程(nhooo.com)</title> 
<style> 
p:nth-child(odd)
{
    background:#ff0000;
}
p:nth-child(even)
{
    background:#0000ff;
}
</style>
</head>
<body>
<h1>这是一个标题</h1>
<p>这是第一个段落。</p>
<p>这是第二个段落。</p>
<p>这是第三个段落。</p>
<p>这是第四个段落。</p>
<p><b>注意:</b> Internet Explorer 8 以及更早版本的浏览器不支持 :nth-child()选择器.</p>
</body>
</html>
测试看看 ‹/›

示例 2

使用公式(an+ b).描述:a代表一个循环的大小,N是一个计数器(从0开始),以及b是偏移量。 在这里,我们对所有索引是3的倍数的p元素指定了背景颜色:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>基础教程(nhooo.com)</title> 
<style> 
p:nth-child(3n+0)
{
    background:orange;
}
</style>
</head>
<body>
<h1>这是标题</h1>

<p>第一个段落。</p>

<p>第二个段落。</p>

<p>第三个段落。</p>

<p>第四个段落。</p>

<p>第五个段落。</p>

<p>第六个段落。</p>

<p>第七个段落。</p>

<p>第八个段落。</p>

<p>第九个段落。</p>
<p><b>注意:</b> Internet Explorer 8 以及更早版本的浏览器不支持 :nth-child()选择器.</p>
</body>
</html>
测试看看 ‹/›

完整CSS选择器参考手册