css :nth child 选择器怎么用_列表样式控制示例
发布时间 - 2025-12-31 00:00:00 点击率:次:nth-child(n) 按元素在父容器中的物理位置(第几个子元素)匹配,与标签类型无关;若目标位置的子元素不是指定标签(如li),则不生效。
怎么用 :nth-child() 选中特定位置的列表项
直接说结论: 常见误用场景:想给“第二个 这是最容易混淆的一点: 比如父元素是: 那么: 真实项目中经常要实现「奇偶行不同背景」「第一项加图标」「最后一项去边框」这类效果。用 下面这段 CSS 会作用于一个干净的 / 奇数项浅灰背景 /
ul li:nth-child(odd) {
background-color: #f9f9f9;
} / 偶数项白色背景(可省略,除非要覆盖) /
ul li:nth-child(even) {
background-color: #fff;
} / 第一项加左侧蓝条 /
ul li:nth-child(1) {
border-left: 4px solid #007bff;
} / 最后一项去掉下边框 /
ul li:last-child {
border-bottom: none;
} 注意: 最常出问题的不是语法写错,而是没意识到「它数的是所有子元素的位置」——检查 DOM 结构比查文档更快。:nth-child(n) 是按元素在其父容器中的**物理位置**(即第几个子元素)来匹配的,不是按类型。哪怕你写的是 li:nth-child(2),如果第二个子元素不是 (比如是 或文本节点),那它就完全不生效。”加样式,但父元素里混了其他标签,结果样式没出现——大概率就是这个原因。
:nth-child(1) → 选中第一个子元素(且必须是目标标签,如 li):nth-child(odd) 或 :nth-child(2n+1) → 所有奇数位子元素:nth-child(even) 或 :nth-child(2n) → 所有偶数位子元素:nth-child(3n) → 第 3、6、9… 个子元素(3 的倍数位):nth-child(3n+2) → 第 2、5、8… 个子元素(
从第 2 个开始,每 3 个一循环)
:nth-child() 和 :nth-of-type() 的关键区别在哪:nth-child() 数的是「所有子元素」的顺序;:nth-of-type() 数的是「同类型标签」的顺序。
说明文字
li:nth-child(2) ✅ 匹配「香蕉」(因为 正好在第 2 个位置)li:nth-child(3) ❌ 不匹配「香蕉」,也不匹配「橙子」——第 3 个子元素是 (香蕉),但第 3 个子元素确实是 ,所以这里其实 ✅;真正失效的是 li:nth-child(4)(第 4 个是 )li:nth-of-type(2) → 匹配「香蕉」(它是第 2 个 )li:nth-of-type(3) → 匹配「橙子」(它是第 3 个 ),不管前面插了多少非 li 元素实用列表样式控制示例:斑马纹 + 首尾特殊处理
:nth-child() 写起来很直接,但要注意兼容性和语义。 结构(无其他子元素干扰):ul li {
padding: 8px 12px;
border-bottom: 1px solid #eee;
}
:last-child 比 :nth-child(n) 更安全,只要最后一个子元素确实是 就能命中;但如果末尾有 ,那 :last-child 就会失效——此时该用 :last-of-type。容易被忽略的坑:伪类优先级和 DOM 变动影响
:nth-child() 是静态计算的,浏览器在解析 HTML 时就确定了每个元素的位置索引。这意味着:
后,原有元素的 :nth-child() 索引可能全部改变(比如在开头 prepend() 一个 ,原来 :nth-child(1) 的元素就变成 :nth-child(2)):nth-child() 的优先级和普通类名一样(specificity = 0,0,1,0),但比标签选择器高;如果同时写了 li.active 和 li:nth-child(1),后者不会自动覆盖前者——得看谁在 CSS 里写在后面,或加 !important
:nth-child(),如果还要兼容,得用 JS 或额外 class 控制(如 class="first" / "odd")
# css
# html
# js
# 浏览器
# 苹果
# 区别
# 循环
# class
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境
香港服务器选型指南:免备案配置与高效建站方案解析
独立制作一个网站多少钱,建立网站需要花多少钱?
百度浏览器网页无法复制文字怎么办 百度浏览器复制修复
如何在阿里云虚拟服务器快速搭建网站?
PythonWeb开发入门教程_Flask快速构建Web应用
Laravel怎么实现验证码(Captcha)功能
linux top下的 minerd 木马清除方法
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
轻松掌握MySQL函数中的last_insert_id()
在线制作视频网站免费,都有哪些好的动漫网站?
浅析上传头像示例及其注意事项
b2c电商网站制作流程,b2c水平综合的电商平台?
如何获取免费开源的自助建站系统源码?
js代码实现下拉菜单【推荐】
如何在阿里云服务器自主搭建网站?
香港服务器网站推广:SEO优化与外贸独立站搭建策略
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
香港服务器建站指南:免备案优势与SEO优化技巧全解析
悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤
Swift中swift中的switch 语句
中国移动官方网站首页入口 中国移动官网网页登录
Python文件操作最佳实践_稳定性说明【指导】
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
如何在IIS7上新建站点并设置安全权限?
Win11关机界面怎么改_Win11自定义关机画面设置【工具】
如何快速使用云服务器搭建个人网站?
Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解
Swift中循环语句中的转移语句 break 和 continue
如何登录建站主机?访问步骤全解析
大连 网站制作,大连天途有线官网?
如何快速搭建支持数据库操作的智能建站平台?
在Oracle关闭情况下如何修改spfile的参数
如何用搬瓦工VPS快速搭建个人网站?
HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】
如何为不同团队 ID 动态生成多个非值班状态按钮
Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理
做企业网站制作流程,企业网站制作基本流程有哪些?
三星、SK海力士获美批准:可向中国出口芯片制造设备
Laravel如何集成Inertia.js与Vue/React?(安装配置)
Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南
zabbix利用python脚本发送报警邮件的方法
JavaScript如何实现类型判断_typeof和instanceof有什么区别
如何撰写建站申请书?关键要点有哪些?
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
打开php文件提示内存不足_怎么调整php内存限制【解决方案】
北京网站制作公司哪家好一点,北京租房网站有哪些?
网站建设整体流程解析,建站其实很容易!
如何在VPS电脑上快速搭建网站?
高性价比服务器租赁——企业级配置与24小时运维服务

