统一单元格高度需设box-sizing: border-box;、统一padding与line-height、控制white-space和图片尺寸,并用table-layout: fixed;配合固定height与vertical-align: middle;实现强约束。
表格单元格高度不统一,通常是因为内容撑开、默认盒模型差异或未显式设置垂直对齐方式。解决核心是统一盒模型行为,并合理控制 padding 与 height 的关系。
CSS 默认的 content-box 会让 padding 和 border 额外增加元素尺寸,导致相同 height 声明下实际高度不同。表格单元格(td、th)也受此影响。
box-sizing: border-box;
table, td, th { box-sizing: border-box; }
height: 40px 就真等于「内容区 + padding + border」总高为 40px即使盒模型统一,若单元格内文字行高过大或 padding 不一致,仍会视觉上“高度不一”。关键不是删 padding,而是让 padding + line-height 组合稳定。
td 和 th 设置统一的 padding(如 padding: 8px 12px;)line-height(如 line-height: 1.4;),避免单行文字贴顶贴底height + line-height 相等,并配合 vertical-align: middle;
长文本换行、图片未约束、空格/换行符都可能意外拉高单元格。
white-space: nowrap; 防止文本换行(适合短字段)white-space: normal; word-break: break-word; 控制长内容软换行
max-height: 100%; height: auto; vertical-align: middle;
overflow: hidden; 并确保 height 有明确值当以上仍不稳定(尤其多行内容混排),可用表格布局强控:
table 设 table-layout: fixed;,让列宽/行高更可预测tr 或直接为 td 设固定 height(如 height: 48px;)vertical-align: middle; 居中内容,比依赖内容撑开更可靠