:nth-child和:nth-of-type行为不同:前者按子元素位置匹配,后者按同类型元素顺序匹配;:first-child与:first-of-type同理,一字之差可能导致完全不匹配。
:nth-child 和 :first-child 不是“有哪些”的罗列对象,而是**有明确行为差异、必须按场景选对的两个关键伪类**。用错一个,样式就失效——尤其在混合子元素(比如 div 里夹着 p、h2、span)时。
为什么 :nth-child(n) 经常“选不到”你想要的元素?它只认「位置」,不认「类型」::nth-child(2) 意思是“父元素下的第二个子元素”,然后才判断这个子元素是不是你写的标签名。如果第二个子元素是 h2,而你写的是 p:nth-child(2),那这条规则完全不生效。
ul 写了 li:nth-child(2),但第二项没变色——检查一下 ul 开头有没有注释、空格、或意外插入的 div
li 列表),且你关心的是视觉顺序位置n 从 0 开始代入公式,2n+1 等价于 odd,3n 表示第 3、6、9…个位置(不是第 3、第 6 个 li):nth-of-type(n) 才是你真正需要“找第 n 个 li”的解法它先筛出所有同类型元素(比如全部 p),再按它们在父元素中出现的顺序编号,:nth-of-type(2) 就是“第二个 p”,不管它前面隔着几个 h3 或 div。
p:nth-of-type(3)
:nth-child 权重相同(都是 10),但逻辑完全不同;切勿当成同义词互换:first-child vs :first-of-type:一字之差,结果可能全空假设父容器是:
标题
第一段
立即学习“前端免费学习笔记(深入)”;
第二段
p:first-child → 不匹配任何元素(因为第一个子元素是 h2)p:first-of-type → 匹配“第一段”(它是第一个 p)h2:first-child → 成功匹配(h2 正好是第一个子元素):last-child 和 :last-of-type 行为对称,但含义不可互换绝大多数情况下,用 :nth-child(even) 最稳妥——前提是你的列表结构干净(如纯 tr 或纯 li)。但如果表格里插了 thead、tfoot 或额外 tr class="divider",就会错位。
tbody > tr 结构 → tbody > tr:nth-child(even)
thead 的表格 → 改用 tbody > tr:nth-of-type(even)(只数 tbody 下的 tr)tr:nth-child(n+2)(从第 2 个子元素开始选),不是 tr:nth-child(2n)
:nth-child 和 :nth-of-type 都只看直接子元素层级**。如果你写了 ul li:nth-child(1),它不会去 ul 的孙子辈里找,也不会跨过嵌套的 ol 去算。结构一复杂,就必须靠开发者自己判断:我要控制的是“第几个孩子”,还是“第几个同类元素”。
# css
# css3
# 伪类选择器
# 为什么
# class
# 对象
# 选择器
# 伪类
# ul
# tbody
# tr
# li
# 的是
# 几个
# 写了
# 一字
# 你写
# 之差
# 都是
# 不匹配
# 就会
# 如果你
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
网络优化76771 】
【
技术知识130152 】
【
IDC云计算60162 】
【
营销推广131313 】
【
AI优化88182 】
【
百度推广37138 】
【
网站推荐60173 】
【
精选阅读31334 】
相关推荐:
php修改数据怎么改富文本_update更新html内容注意事项【说明】
Win10如何卸载微软拼音输入法 Win10只保留一个输入法【教程】
如何在Golang中定义接口_抽象方法和多态实现
c++怎么使用std::filesystem遍历文件夹_c++ 递归查找文件与权限修改【技巧】
如何在Golang中处理JSON字段缺失_Golangjson解析字段校验方法
MAC怎么截图并快速编辑_MAC自带截图快捷键与标注工具使用【方法】
Win11怎么查看电脑配置_Win11硬件配置详细查询方法【详解】
php嵌入式日志记录怎么实现_php将硬件数据写入本地日志文件【指南】
Python面向对象实战讲解_类与设计模式深入理解
php接口返回数据乱码怎么办_php接口调试编码问题解决【指南】
Mac如何调整Dock栏大小和位置_Mac程序坞个性化设置
Go 中 defer 在 goroutine 内部不生效的原因与执行时机详解
Win11怎么更改任务栏位置_修改注册表将Win11任务栏置顶【教程】
Win11怎么打开旧版计算器_Win11恢复传统计算器应用【详解】
微信短链接怎么还原php_用浏览器开发者工具抓包获取【方法】
如何使用Golang捕获并记录协程panic_保证主程序稳定运行
LINUX的SELinux是什么_详解LINUX强制访问控制系统的入门与配置
Python技术债务管理_长期维护解析【教程】
Win11玩游戏全屏闪退怎么办_Win11全屏优化禁用设置【教程】
Win11怎么关闭定位服务_保护Win11位置隐私设置指南【详解】
php怎么连接数据库_MySQL数据库连接的基础代码编写【说明】
Windows怎样关闭开始菜单广告_Windows关闭开始菜单广告设置【步骤】
Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)
Win10怎样清理C盘Steam游戏缓存_Win10清理Steam游戏缓存步骤【步骤】
Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】
c++中如何使用虚函数实现多态_c++多态性实现原理
Ajax提交表单PHP怎么接收_处理Ajax发送的表单数据技巧【指南】
如何使用Golang table-driven基准测试_多组数据测量函数效率
Win10怎样清理C盘浏览器缓存_Win10清理浏览器缓存步骤【步骤】
Mac如何使用听写功能_Mac语音输入打字【效率技巧】
PHP的FastAdmin架构适合二次开发吗_特点分析【介绍】
Win11怎么关闭透明效果_Windows11个性化颜色关闭透明
php错误怎么开启_display_errors与log_errors的设置【汇总】
php订单日志怎么记录评价_php记录订单评价日志方法【方法】
Win10闹钟铃声怎么自定义 Win10闹钟自定义铃声教程【方法】
ACF 教程:如何正确更新嵌套在多层 Group 字段内的子字段
Linux如何安装Golang环境_Linux下Go语言开发包配置【方法】
Python路径拼接规范_跨平台处理说明【指导】
Windows 10怎么把任务栏放在屏幕上方_Windows 10解锁任务栏并拖动位置
PHP cURL GET请求:正确设置请求头与身份认证的完整教程
Windows10系统怎么查看CPU温度_Win10性能监视器查看硬件数据
如何在 ACF 中正确更新嵌套多层的 Group 字段子字段
如何在 Go 后端安全获取并验证前端存储的 JWT?
Win10怎么关闭自动更新错误重启 Win10策略禁止失败补丁强制重启【防护】
Win11怎么修复系统文件_使用sfc命令修复Win11系统【技巧】
Win11任务栏怎么放到顶部_Win11修改任务栏位置方法【详细】
Win11怎么关闭自动更新 Win11永久关闭系统更新的有效方法【技巧】
Drupal 中 HTML 链接被双重转义导致渲染异常的解决方案
Win11怎么查看显卡显存_查询Win11显卡详细参数方法【步骤】
Windows10无法连接到Internet_Win10网络重置命令详解
2026-01-03
致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。