导读:本期聚焦于小伙伴创作的《如何在CSS中使用nth-of-type选择器设置特定类型元素样式》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何在CSS中使用nth-of-type选择器设置特定类型元素样式》有用,将其分享出去将是对创作者最好的鼓励。

在CSS样式开发中,经常需要对同一父元素下的特定类型元素设置差异化样式,nth-of-type选择器就是实现这个需求的核心工具。很多开发者容易把它和nth-child选择器混淆,导致样式设置不符合预期。

如何在CSS中使用nth-of-type选择器设置特定类型元素样式

nth-of-type选择器基本语法

nth-of-type选择器的作用是匹配父元素下指定类型的第n个子元素,语法格式如下:

/* 基础语法 */
元素类型:nth-of-type(参数) {
    样式属性: 属性值;
}

这里的元素类型可以是div、p、li等任意HTML元素标签,参数支持多种取值规则,常见的有以下几种:

  • 数值:直接填写数字,比如2,匹配同类型元素中的第2个
  • 关键字:even表示匹配偶数位置的同类型元素,odd表示匹配奇数位置的同类型元素
  • 公式:格式为an+b,a和b是数值,n从0开始递增,比如2n+1匹配第1、3、5...个同类型元素

nth-of-type和nth-child的区别

很多开发者会混淆这两个选择器,核心差异在于匹配逻辑:

选择器匹配逻辑
nth-child先找父元素下第n个子元素,再判断该元素类型是否匹配
nth-of-type先筛选父元素下指定类型的所有子元素,再找其中的第n个

举个例子,父元素下有两个子元素,第一个是<p>,第二个是<div>,用p:nth-child(2)无法匹配到任何元素,因为第2个子元素是div不是p;而div:nth-of-type(1)可以匹配到第二个子元素,因为它是父元素下第1个div类型元素。

实际使用示例

示例1:表格奇数行设置背景色

给表格的奇数行设置浅灰色背景,提升可读性:

<table border="1" cellpadding="5" cellspacing="0">
    <tr>
        <td>姓名</td>
        <td>年龄</td>
    </tr>
    <tr>
        <td>张三</td>
        <td>20</td>
    </tr>
    <tr>
        <td>李四</td>
        <td>22</td>
    </tr>
    <tr>
        <td>王五</td>
        <td>25</td>
    </tr>
</table>

对应的CSS代码:

/* 匹配表格中奇数位置的tr元素 */
tr:nth-of-type(odd) {
    background-color: #f5f5f5;
}

示例2:列表每3项设置不同样式

给无序列表每3项设置不同的文字颜色:

<ul class="item-list">
    <li>列表项1</li>
    <li>列表项2</li>
    <li>列表项3</li>
    <li>列表项4</li>
    <li>列表项5</li>
    <li>列表项6</li>
</ul>

对应的CSS代码:

/* 第1、4、7...个li元素 */
li:nth-of-type(3n+1) {
    color: #ff0000;
}
/* 第2、5、8...个li元素 */
li:nth-of-type(3n+2) {
    color: #00ff00;
}
/* 第3、6、9...个li元素 */
li:nth-of-type(3n) {
    color: #0000ff;
}

注意事项

使用nth-of-type选择器时需要注意以下几点:

  • 参数中的n是从0开始递增的,所以当参数为0时,不会匹配到任何元素,因为元素位置从1开始
  • 如果父元素下没有指定类型的子元素,选择器不会生效,也不会报错
  • 该选择器是CSS3新增特性,在IE8及以下版本浏览器中不支持,如果需要兼容旧浏览器,需要采用其他替代方案

掌握nth-of-type选择器的用法后,可以减少很多冗余的class定义,让CSS代码更简洁,维护起来也更方便。在实际开发中,多结合具体场景练习,就能快速熟练运用这个选择器。

CSSnth-of-type特定类型元素样式设置修改时间:2026-07-05 13:00:24

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。