直接给<tr>设height基本无效,应通过<td>/<th>的height、line-height、vertical-align、padding及box-sizing联合控制行高,多行内容需用max-height或flex布局处理。

直接给 <tr> 设 height 基本无效——Chrome 完全忽略,Firefox 表现不一致,别白费劲。
优先用 td / th 的 height + line-height 锁定单行高度
表格行高最终由单元格内容撑开,<tr> 只是容器,不参与盒模型计算。真正可控的是 <td> 和 <th>。
-
height和line-height设成相同值(如height: 40px; line-height: 40px;),能确保单行文本垂直居中且视觉高度固定 - 必须加
vertical-align: middle;,否则文字会贴顶或贴底 - 记得设
box-sizing: border-box;,否则padding会额外撑高单元格 - 禁用默认
padding:padding: 0;,不然height很容易被突破
line-height 用无单位数字,别用 px 或 em
表格里字体大小可能动态变化(比如响应式缩放、用户自定义字号),硬写 line-height: 24px 会导致行高僵化、文字重叠或留白过大。
- 推荐写法:
line-height: 1.5;—— 子元素继承后,按自身font-size重新计算,安全又灵活 - 避免
line-height: 1.5em;:它继承的是父级计算后的固定值,嵌套时易塌陷(比如<td>里套<span>,文字会挤到一起) - 如果真要像素级控制(如后台数据表格),只在局部用
px,并配合overflow: hidden;防止内容溢出
多行内容不能靠 line-height 控制高度
line-height 只管“行框”间距,不管容器整体高度。一旦单元格里有换行、图片、<div> 或 flex 子项,line-height 就失效了。
使用 PptxGenJS 和 Python 解析,将结构化的 HTML/CSS 幻灯片内容转换为原生、可编辑的 PowerPoint(.pptx)演示文稿。
立即学习“前端免费学习笔记(深入)”;
- 多行文本想截断显示:用
display: -webkit-box;+-webkit-line-clamp: 2;+overflow: hidden; - 需要精确高度约束:改用
max-height+overflow: auto;,或干脆把<td>改成display: flex;重写布局 - 图片导致行高异常?加
vertical-align: top;或line-height: 0;消除基线间隙(但仅限图片,别乱用在正文上)
border-collapse: collapse 下,cellspacing 和 cellpadding 全部失效
这两个 HTML 属性早已废弃,且在 border-collapse: collapse(现代表格标配)下完全没作用。
-
cellspacing→ 被border-spacing替代,但只在border-collapse: separate;时生效 -
cellpadding→ 直接用paddingCSS 控制,推荐写成padding: 8px 12px;明确上下左右 - 想模拟“单元格间距”?别动
<tr>,给<td>加margin会破坏表格流式结构;稳妥做法是用padding+background-clip: padding-box;配合边框视觉隔离
最常被忽略的一点:表格行高不是独立属性,它是 td 内容、line-height、vertical-align、padding 和渲染引擎共同作用的结果。调试时先给 <td> 加个 border: 1px solid red;,再打开开发者工具看实际盒模型,比猜更准。


















