← 返回博客列表

CSS选择器之nth-child详解

Vic.Wang2015/11/182002 阅读0 喜欢最近更新 2026/07/06 22:04:55

本文写于 2015 年,距今已有 11 年,文中提及的技术方案与接口可能已经过时,请注意甄别参考。

语法:E:nth-child(n){}

说明:nth-child() 是 CSS3 的一个伪类选择器,匹配父元素的第 n 个子元素 E,假设该子元素不是 E,则选择符无效。

效果实例:

一、数字序号写法

E:nth-child(5) {}   //数值

1.png

E 表示标签,div, li, span 等,下同。

注意:数字的序号是从 1 开始的哦,不像很多编程语言中索引是 0 开始的,参数是必须大于 0 的整数。

2.png

二、关键字写法

E:nth-child(even) {}  //偶数

3.png

E:nth-child(odd) {}  //奇数

4.png

关键字写法中,只有 even 和 odd 两种,匹配序号为偶数与奇数的元素。

三、倍数写法:

E:nth-child(2n) {}   //2倍

5.png

E:nth-child(3n) {}   //3倍

6.png

n 是固定要写的,n 从 0 开始遍历,直到找到所有匹配元素,n 前加数值,加 2 就是 2 倍,可以任意的,1n, 2n, 3n, 4n, 5n... 依次类推。一般用到的就 2n、3n 比较多,再大也没什么意义了。

四、倍数分组写法:

倍数可以视为一组,比如 3n,可以理解为 3 个 li 为一组,然后相加相减都是在这一组里面筛选的,相加、相减的值都是正整数的。n 和 + 号 或 n 和 - 号是必须写的。

E:nth-child(2n+1) {}   //倍数分组+值

7.png

这种写法简单理解就是“隔几取几”,比如 3n+1 表示“隔二取一”,其余类推。

E:nth-child(2n-1) {}   //倍数分组-值

8.png

五、反向倍数分组写法:

E:nth-child(-n+2) {}   //倍数负值

9.png

反向倍数是从最后一个开始往回算的。可以选取序号小于某个值的元素,比如 -n+2 可以选取前 2 个元素。

其他一些效果:

E:nth-child(n+3) {}   //选取序号大于3的元素 也就是除前2个元素外的元素

10.png

能有这篇文章,是因为聪聪问了我个问题,li 隔行怎么弄,想了半天才想到将 li 6个一组,每组里面再减去相应的,试了下还真的可以,效果如下:

li:nth-child(6n-5),li:nth-child(6n-4),li:nth-child(6n-3) {}

11.png

兼容方面,现代浏览器完全没问题,但IE浏览器仅支持 IE9 及以上哦,要想在低版本上使用,另外想办法吧,臣妾做不到呀o(>﹏<)o!

总结:nth-child 选择的是子元素,如果只想选择同类的子元素,那应该使用 nth-of-type 选择器。nth-child 的同类选择器还有 first-child、last-child、only-child、nth-last-child。

若有共鸣,不妨点个喜欢

本文地址:https://www.mingsixue.com/blog/detail/CSS-selector-nth-child

分享:微博QQ空间X