nth-of-type只在同标签兄弟中计数,非目标标签会占位但不参与计数;与nth-child区别在于前者看标签类型、后者看位置序号;参数格式敏感,空格或大小写错误将导致规则失效。

nth-of-type 选不到想要的元素?先看父容器里有没有“同类型兄弟”
这个伪类只在**同种标签名**的兄弟元素中计数,不是按 DOM 顺序全局排号。比如 A C,两个 是 p:nth-of-type(1) 和 p:nth-of-type(2);但 span:nth-of-type(1) 只匹配 B,因为它是唯一的 兄弟。
常见错误现象: 示例: 正文1 正文2 想从第 3 个 CSS 解析器对 最常被忽略的是:你以为在数“第几个元素”,其实 CSS 在数“第几个同标签兄弟”——这个前提不成立,后面所有计算都是白忙。div:nth-of-type(2) 没生效,其实是父容器下第一个 或 —— 它们不参与 div 的计数,但会“占位”,导致你误判序号。
nth-of-type(n) 和 nth-child(n) 到底差在哪?别混着用
nth-of-type 看标签名,nth-child 看位置序号(不管标签)。同一个元素可能同时满足两者,也可能只满足其一。标题
article p:nth-of-type(1) { color: red; } /* 匹配第一个 <p>,即“正文1” */
article p:nth-child(2) { color: blue; } /* 匹配父下第 2 个子元素且是 </p><p>,也是“正文1” */
article p:nth-child(3) { color: green; } /* 匹配第 3 个子元素且是 </p><p>,“正文2” */
article :nth-child(2) { font-weight: bold; } /* 匹配任意标签的第 2 个子元素,即“正文1” */</p>
nth-of-type(2n) 选所有偶数位的同标签元素;nth-child(2n) 选所有偶数位置的子元素(哪怕类型不同)li:nth-of-type(odd) 却发现没效果——可能 前面有 用 nth-of-type 做“跳过前 N 个”的安全写法
开始统一设 margin,别直接写 section:nth-of-type(n+3) —— 这其实等价于“第 3 个及之后所有”,但很多人误以为它能“排除前两个”。它确实能,但前提是这些 是连续的同类型兄弟。
section:nth-of-type(n+3) 是标准写法,表示从第 3 个开始计数(n=0 时为 3),那么 section:nth-of-type(n+3) 实际只会匹配最后一个 (它是第 3 个 ).section--styled,再用 .section--styled 直接选择nth-of-type(3n+1) 不影响渲染速度,但可读性差,团队协作时建议加注释说明意图伪类里的关键字和数字怎么写才不报错?
nth-of-type 的参数非常敏感,空格、符号、大小写都可能导致整条规则失效(浏览器静默忽略)。
nth-of-type(2)、nth-of-type(2n)、nth-of-type(2n+1)、nth-of-type(odd)、nth-of-type(even)
nth-of-type( 2 )(前后空格)、nth-of-type(2n +1)(+ 前后有空格)、nth-of-type(2N+1)(N 大写)、nth-of-type(2n+ 1)(+ 后空格)
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











