:nth-last-of-type 伪类选择器用于从后往前定位同类型元素,语法为 selector:nth-last-of-type(n),支持数字、odd/even 和公式;常用于选倒数第几个同标签元素,如 p:nth-last-of-type(1) 选最后一个段落,li:nth-last-of-type(3n+1) 按规律选倒数位置;实际可用于为最后两个段落添加背景色 p:nth-last-of-type(-n+2),或高亮倒数第三个列表项;注意它按标签类型计数,与不区分类型的 :nth-last-child 不同,因此 div p:nth-last-of-type(1) 仅匹配最后一个 p,无视后续其他标签。

css 中的 :nth-last-of-type 是一个非常实用的伪类选择器,它可以从父元素的最后一个子元素开始向前计数,选择特定位置的同类型元素。这个选择器常用于反向定位结构中相同标签类型的元素,比如倒数第2个段落、倒数第1个 div 等。
基本语法
selector:nth-last-of-type(n)
其中 n 可以是数字、关键字(如 odd、even)或公式(如 2n+1)。
常见用法示例
1. 选择倒数第一个 p 元素
p:nth-last-of-type(1)
这会选择其父元素中最后一个 p 标签。
立即学习“前端免费学习笔记(深入)”;
2. 选择倒数第二个 span 元素
span:nth-last-of-type(2)
匹配倒数第二个 span,前提是它是同类型中的倒数第二。
3. 使用奇偶关键字
- div:nth-last-of-type(odd):选择倒数第1、3、5…个 div
- div:nth-last-of-type(even):选择倒数第2、4、6…个 div
4. 使用表达式实现更复杂的选择
li:nth-last-of-type(3n+1)
从倒数方向计算,匹配符合 3n+1 规律的位置,例如倒数第1、第4、第7个 li 元素。
实际应用场景
假设你有一组文章段落,想对最后两个段落添加特殊样式:
p:nth-last-of-type(-n+2) { background: #f0f0f0; }
这里 -n+2 表示从倒数第1个开始,往前最多选2个元素。
另一个例子:在列表中高亮倒数第三个项目:
li:nth-last-of-type(3) { font-weight: bold; }
注意事项
:nth-last-of-type 是基于元素类型的,也就是说它只考虑同标签名的兄弟元素。与 :nth-last-child 不同,后者不区分标签类型。
例如:
div p:nth-last-of-type(1)
只会匹配 div 内最后一个 p,即使后面还有其他元素如 span 或 img,也不会影响 p 的计数。
基本上就这些。掌握这个选择器能让你在不添加额外 class 的情况下,灵活控制文档末尾区域的样式。


