CSS如何选择同级中的第一个元素_通过-first-child伪类实现
:first-child 失效是因为它只匹配父元素的第一个子节点不区分类型若前面有注释、文本节点或其它标签则不匹配。应改用 :first-of-type 或添加 class 控制。为什么 :first-child 有时不生效它只认“是不是父元素的第一个子节点”不看类型。比如 divpA/pspanB/span/div 中p 是第一个子元素p:first-child 能命中但若前面加个 !-- 注释 -- 或 divemX/empA/p/divp 就不是第一个子节点了:first-child 直接失效。常见错误现象li:first-child 没加粗、button:first-child 没变色——大概率是 DOM 结构里它前面有别的元素空格换行在某些解析模式下也算文本节点。检查浏览器开发者工具的 Elements 面板确认目标元素是否真为父容器的 第一个子节点如果父容器开头有注释、文本节点或其它标签:first-child 就不可靠想按“同类型中的第一个”匹配得换 :first-of-type:first-of-type 和 :first-child 的关键区别:first-of-type 看的是“同名标签中排第一的那个”不管中间隔了什么。比如 divem1/emp2/pspan3/spanp4/p/divp:first-of-type 会选中 p2/p而 p:first-child 根本不匹配因为 p 不是第一个子节点。:first-child → “我是老大位置第一”:first-of-type → “我是同类里最早出生的那个类型内序号第一”性能上没差别但语义完全不同误用会导致样式完全不出现IE9 支持 :first-of-type如果要兼容 IE8 及更早只能靠 JS 或加 class真正“同级中第一个某类元素”的稳妥写法如果目标是“在一组兄弟元素中选第一个 button”且不确定 DOM 是否干净最稳的方式是明确加 class 控制而不是赌伪类。立即学习“前端免费学习笔记深入” 稿定AI 拥有线稿上色优化、图片重绘、人物姿势检测、涂鸦完善等功能
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2521204.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!