height是HTML弃用属性,仅设固定高度;min-height才是CSS最小高度标准,但在td/tr上直接无效,须配合table-layout: fixed和显式宽度才生效。

height 属性不能指定「最小高度」——它设的是固定高度或初始高度基准,且在现代标准中已被弃用。真正能表达“最小”语义的,只有 CSS 的 min-height,而它在表格单元格(td/th)上直接使用无效。
table 标签的 height 属性实际效果是什么
-
height是 HTML 属性,不是 CSS,写在<table height="300">里; - 它的行为因浏览器和表格内容而异:内容少时可能撑到该值,内容多时会自动增高,看起来像 min-height,但本质不是;
- W3C 已明确将其标记为 deprecated,HTML5 不再推荐使用;
- 它不支持单位如
vh、%(只接受数字,默认为像素),也无法响应式适配; - 在现代框架(React/Vue)或严格 DOCTYPE 下,该属性可能被忽略或触发 quirks mode。
为什么给 td 或 tr 设 min-height 常常不生效
-
td和th默认是display: table-cell,属于「replaced inline-level 元素变体」,CSS 规范禁止min-height对其生效; -
tr上设min-height也无效,除非table同时设置了table-layout: fixed且有明确宽度(如width: 100%); - 常见错误:只写
tr { min-height: 48px; },却漏了table { table-layout: fixed; width: 100%; },结果完全没反应。
真正可靠设置表格「最小高度」的组合方案
- 用
table-layout: fixed+tr的min-height:table { table-layout: fixed; width: 100%; } tr { min-height: 48px; } td, th { padding: 8px 12px; vertical-align: middle; } - 若只需视觉上“单行不低于某高度”,更轻量的做法是:
- 去掉
min-height,改用line-height+padding+height组合 - 例如:让文字垂直居中且视觉高度 ≥ 44px →
td { line-height: 44px; height: 44px; padding: 0; vertical-align: middle; } - 这个写法 IE7+ 全兼容,不依赖布局模式,也不怕换行或内联子元素破坏
- 去掉
min-height 在表格里不是“设了就起作用”的属性,它高度依赖父级约束和 display 行为。最容易被忽略的点是:没有 table-layout: fixed 和显式 width,tr 的 min-height 就是摆设。



















