加 margin 或试图用 line-height 拉高整行 —— 这只会撑开文字行距,不会增加单元格上下留白。
-
padding 值建议用 rem 或 em,方便响应式缩放
- 若需首尾行额外留白,可单独加类如
.table--spaced,对 th:first-child 和 td:last-child 微调 padding-top/padding-bottom
- 避免在
th 和 td 上用不同 padding 值,否则表头与数据列容易错位
深色边框/斑马纹和 hover 效果别硬写多层选择器
想让表格有现代感?直接复用已定义的边框色变量,而不是临时写 #37414f 或 rgba(0,0,0,0.1)。比如:
.table-striped tbody tr:nth-child(odd) {
background-color: #f9fafb;
}
.table-hover tbody tr:hover {
background-color: #f0f4f8;
border-color: #9ca3af; /* 复用同一色系,不另起新值 */
}关键点:
- 斑马纹用
tbody tr:nth-child(odd),别用 tr:nth-of-type(odd)(会被 thead 干扰)
- hover 边框色建议比默认色略深一级,但保持同一
hsl() 色相,避免跳脱
- 如果用了 CSS 变量(如
--border-color: #d1d5db),所有边框都应引用它,后续换主题只需改一处
响应式表格常被忽略的两个断点行为
小屏下表格横向溢出是高频问题。光加 overflow-x: auto 不够——它只解决滚动,不解决可读性。真正要处理的是:
- 给
包一层 ,并设 overflow-x: auto 和 min-width: min-content- 移动端禁用
border-collapse: collapse 改为 separate,再配合 border-spacing: 0 + 单元格 border-bottom 模拟“行分隔”,这样左右滑动时不会漏边框
- 慎用
font-size: 0.875rem 缩小文字:可能影响可访问性;优先用 padding: 0.375rem 0.5rem 压缩内边距
最易被忽略的一点:当表格有 fixed 表头时,border-collapse 在 Safari 下可能失效,此时必须显式给 thead th 和 tbody td 分别设 border-bottom 和 border-top 来对齐。