:nth-child选择器可通过odd和even关键字为奇偶子元素设置不同样式,实现如斑马条纹效果;li:nth-child(odd)匹配第1、3、5…项,li:nth-child(even)匹配第2、4、6…项,样式规则分别应用浅灰与白色背景,提升可读性且无需JavaScript或额外类名。

在网页开发中,我们经常需要对列表或容器中的奇数项和偶数项设置不同的样式,比如实现斑马条纹效果。CSS 的 :nth-child 选择器可以轻松实现这一需求,无需额外的类名或 JavaScript。
什么是 :nth-child 选择器
:nth-child(n) 是一个结构伪类选择器,用于匹配父元素下的第 n 个子元素。它可以根据公式 an + b 来选择元素,其中 a 是周期,b 是偏移量。
常用关键字形式包括 odd(奇数)和 even(偶数),分别代表 2n+1 和 2n。
如何控制奇偶子元素样式
假设有一个无序列表,我们想让奇数行背景浅灰,偶数行背景白色。
立即学习“前端免费学习笔记(深入)”;
HTML 结构示例:
- 项目 1
- 项目 2
- 项目 3
- 项目 4
CSS 样式设置:
li:nth-child(odd) {
background-color: #f0f0f0;
}
li:nth-child(even) {
background-color: #ffffff;
}
这样,第 1、3、5... 项会应用浅灰色背景,第 2、4、6... 项为白色。
实用技巧与注意事项
- 索引从 1 开始::nth-child 计算子元素位置时,第一个子元素是 1,不是 0。
- 可使用公式如 n+3 选择从第 3 个开始的所有元素,或 3n 选择 3 的倍数项。
- 如果父元素中包含不同类型标签(如 div 和 p 混排),:nth-child 仍按顺序计算所有子元素,可能影响预期结果。
- 若只想针对特定类型元素(如仅 li),可结合标签名使用,例如 li:nth-child(odd) 更安全。
基本上就这些。掌握 :nth-child(odd) 和 :nth-child(even),就能快速实现交替样式,提升页面可读性,写起来也简洁直观。










