table 元素上设 min-height 无效,因其为格式化上下文容器,在 table-layout: auto 下高度由内容决定;真正可控入口是 tr(需 table-layout: fixed + 明确 width)或 td/th 的 line-height + vertical-align 组合。
<table> 标签写 min-height: 200px 大概率没反应——因为表格是「格式化上下文」容器,其高度由行高、内容和布局模式共同决定,min-height 在默认自动布局(table-layout: auto)下对 <table> 本身不生效。浏览器会优先按内容撑开,忽略这个声明。height 属性在 <table> 上实际起的是“最小高度”作用(旧规范行为),但已被 HTML5 弃用,语义混乱且响应式下易出错 <table>,而在 <tr> 或视觉层(line-height+padding) <table> 控制整体最小高度,必须配合 display: block 或 flex 容器包裹,但这会破坏表格语义和可访问性 min-height 能在 <tr> 上稳定生效,但有三个硬性条件缺一不可:<table> 必须显式设置 table-layout: fixed <table> 必须有明确宽度(如 width: 100% 或具体像素值),否则固定布局无法计算列宽,进而跳过行高约束 height:如果某处写了 tr { height: 48px; },它会完全覆盖 min-height,变成强制高度 示例有效写法:
table { table-layout: fixed; width: 100%;}tr { min-height: 48px;}td, th { padding: 8px 12px; vertical-align: middle;}
td 和 th 是内联级替换元素变体,规范禁止 min-height 对其生效。但你可以用更轻量、兼容性更好的组合替代:line-height 设为期望的视觉高度(如 line-height: 44px) vertical-align: middle 实现文字垂直居中 padding 设为 0,避免叠加撑高 height: 44px(仅当需严格限制单行高度时) 这个方案在 IE7+ 到 Safari 18 都稳定,且不会因换行、图片或 inline-block 子元素意外失效。
el-table 默认给 th 和 td 加了 padding(通常 12px 上下),这是行高“虚高”的主因。调试时 F12 审查就能看到。.el-table .el-table__cell { padding: 0; } line-height 和 vertical-align 微调文字位置 header-row-style 或 cell-style,记得在这些函数里也返回对应样式,否则会被覆盖 padding-left 保证可读性 最矮不是目标,可读性才是。留 4–6px 左右横向 padding,比全清更稳妥。