td:last-child 能精准选中每行最后一列 td,因其匹配 tr 下最后一个子元素且为 td 类型;若末尾是 th 则不匹配,避免误高亮表头;需写为 tr td:last-child 防止全局误配。

直接用 td:last-child 就能精准选中表格每一行的最后一列单元格,无需额外 class 或 JavaScript。
为什么 td:last-child 能用?
它匹配的是父元素(即 tr)下最后一个子元素且类型为 td 的节点。只要该行末尾确实是 td(不是 th 或其他标签),就能正确命中。
注意:如果某行末尾是 th,那 td:last-child 不会选中它——这是好事,避免误高亮表头行。
基础高亮写法
给最后一列加背景色、文字加粗或边框等视觉强化:
立即学习“前端免费学习笔记(深入)”;
- CSS 示例:
table tr td:last-child {
background-color: #e3f2fd;
font-weight: bold;
padding-left: 12px;
}
兼容多类表格结构
实际表格可能含合并单元格(colspan)、固定列、响应式隐藏列等,需稍作判断:
- 若使用
colspan导致最后一列不总是td:last-child,需配合 JS 动态标记,纯 CSS 无法可靠处理 - 有固定操作列(如“编辑”“删除”)时,建议统一加 class(如
action-col),比依赖位置更稳定 - 响应式场景下某些列被隐藏,
:last-child仍按 DOM 顺序生效,不会随视觉隐藏变化——如需按显示状态高亮,得结合媒体查询或 JS
避免常见陷阱
td:last-child 容易被误写成 tr td:last-child(正确) vs td:last-child(全局匹配所有 td 最后一个,错!)。务必带上父级上下文。
- 错误写法:
td:last-child { ... }→ 只会高亮整个文档中最后一个td - 正确写法:
tr td:last-child或更稳妥的tbody tr td:last-child - 若表格含
thead/tfoot,且不想高亮表头最后一列,可限定作用域:tbody tr td:last-child










