答案::nth-last-child 用于从父元素最后一个子元素开始倒序选择,通过数字或an+b公式匹配特定位置的元素。例如,li:nth-last-child(1)选中倒数第一个,li:nth-last-child(-n+3)选中倒数前三个;结合类型选择可避免标签干扰,常用于导航样式、响应式隐藏等场景。

使用 :nth-last-child 可以从父元素的最后一个子元素开始向前计数,从而实现“倒序选择”。它不是改变元素的显示顺序,而是按逆向位置来匹配元素。下面介绍几种常见的用法。
1. 选择倒数第 n 个元素
想选中倒数第一个、第二个等特定位置的元素,可以直接传入数字。示例:选择倒数第一个和倒数第二个子元素
li:nth-last-child(1) {
color: red; /* 倒数第一个 */
}
li:nth-last-child(2) {
color: blue; /* 倒数第二个 */
}
2. 使用公式 an+b 实现批量倒序选择
:nth-last-child(an + b) 支持公式语法,可以选中符合规律的一组倒数元素。常见场景:
-
倒数前3个元素:
li:nth-last-child(-n + 3) -
从倒数第5个开始的所有元素:
li:nth-last-child(n + 5) -
倒数奇数位(如倒数第1、3、5…):
li:nth-last-child(2n + 1) -
倒数偶数位:
li:nth-last-child(2n)
例子:高亮最后3个列表项
立即学习“前端免费学习笔记(深入)”;
li:nth-last-child(-n + 3) {
background-color: yellow;
}
这个选择器会匹配从倒数第3个开始往后的所有元素(即倒数第1、2、3个)。3. 结合类型选择,避免干扰其他标签
如果父容器中有多种标签,建议使用 :nth-last-of-type 更精确。但若只用 :nth-last-child,需注意它基于所有子元素统一计数。例如:
/* 只对 li 标签倒数计数 */
li:nth-last-of-type(1) {
font-weight: bold;
}
4. 实际应用场景
常用于以下情况:- 给最后几个导航项添加不同样式
- 在响应式布局中隐藏末尾几个元素:
li:nth-last-child(-n+2) { display: none; } - 为倒数几项添加分隔线或图标
基本上就这些。关键是理解“从后往前数”的逻辑,再配合公式灵活控制范围。不复杂但容易忽略细节。










