:last-child 用于选中父元素的最后一个子元素,常用于移除列表末项分隔线、调整间距或设置特殊样式,如 li:last-child { border-bottom: none; },需注意目标元素必须是父级最后一个子节点,且兼容 IE9+,与 :last-of-type 等伪类相比更依赖结构顺序。

:last-child 是 CSS 中一个非常实用的伪类选择器,用于选中父元素下的“最后一个子元素”。它在处理列表、导航菜单、卡片布局等场景时特别有用,能帮助我们精准地为末尾项设置特定样式,比如去除多余的分割线、调整边距或改变背景色。
什么是 :last-child
这个伪类匹配其父元素中排在最后位置的子元素。只要目标元素是其父级的最后一个直接子节点,就会被选中,不管它的标签类型是什么。 例如,在一个无序列表中,你想让最后一个li 不显示下边框,就可以使用 :last-child 实现:
li:last-child { border-bottom: none; }
常见使用场景
以下是几个典型的实际应用方式:- 移除列表最后一项的分隔线:很多列表项之间用 border-bottom 分隔,末项通常不需要。
- 调整间距:避免最后一个元素与容器底部距离过大。
- 特殊视觉效果:如高亮最后一个选项、修改按钮样式等。
示例代码:
.list-item {
padding-bottom: 10px;
margin-bottom: 10px;
border-bottom: 1px solid #ddd;
}
.list-item:last-child {
border-bottom: none;
margin-bottom: 0;
}
注意事项与兼容性
虽然:last-child现代主流浏览器都支持该伪类(包括 IE9+),但在一些老项目中若需兼容 IE8,就不能使用。
- 必须确保目标元素确实是父元素的最后一个子节点,否则不会生效。
- 如果最后一个子元素不是你想要的标签(比如末尾是个
div 而不是li),则无法匹配。- 与
:nth-child配合可实现更复杂的逻辑,但单独使用已能满足大多数末项样式需求。与其他伪类对比
:last-child只关注“是否为最后一个”,而以下伪类各有侧重:-
:last-of-type:选择同类型标签中的最后一个,更精确。 -
:first-child:相反,选择第一个子元素。
li:last-child可能不生效,改用li:last-of-type更可靠。基本上就这些。合理使用
:last-child能让你的布局更干净、代码更简洁,无需额外添加 class 或依赖 JavaScript 控制样式。掌握它,是提升 CSS 精准控制能力的小关键。 - 与










