直接用 tr:hover 设置背景色即可实现整行高亮,兼容 IE9+;需避免 border-collapse: collapse 等干扰样式,推荐加 transition 过渡,并注意层叠顺序以解决斑马纹或表头冲突。

直接用 tr:hover 设置背景色就能实现鼠标移入整行高亮,这是最简洁、兼容性好(IE9+)的标准做法。
基础写法:给 tr 添加 hover 样式
确保表格没有设置 border-collapse: collapse 以外的干扰样式(比如单元格自带 padding 或背景),否则高亮可能不均匀。
示例代码:
table tr:hover {<br> background-color: #f5f5f5;<br> transition: background-color 0.2s;<br>}
处理表头固定或斑马纹冲突
如果表格有 thead 或用了 tr:nth-child(even/odd) 斑马纹,hover 高亮可能被覆盖。
立即学习“前端免费学习笔记(深入)”;
- 把
tr:hover样式写在斑马纹规则之后,利用 css 层叠优先级 - 对
thead tr单独控制,比如禁止表头高亮:thead tr:hover { background: none; } - 如需表头也响应 hover,可加
thead tr:hover并指定不同颜色
兼容性与细节优化
多数现代浏览器都支持 tr:hover,但注意两点:
- IE8 及以下不支持
tr:hover,需 js 模拟(一般已无需兼容) - 移动端无 hover,但部分 ios/android 浏览器在点击后会触发一次 hover,体验有限
- 若高亮不够明显,可搭配文字变色或边框微调:
color: #333; border-bottom: 1px solid #e0e0e0;
基本上就这些。不需要 JS,纯 CSS 就能稳稳搞定整行高亮。