layui.table 的 lineStyle 配置必须设为 false 才能真正释放行高控制权,否则默认内联样式会强制锁定 td 高度;关闭后需同时设置 height 和 line-height 且值相等,并通过 rowStyle + skin: 'nob' 实现动态行高,done 回调中 setTimeout 保证三处表格 tr 高度同步。

layui.table 的 lineStyle 配置必须设为 false 才能真正释放行高控制权
默认情况下,Layui 2.7+ 会自动注入 正确做法是显式声明: 只改 例如统一设为 36px: 要根据数据字段(如 Layui 表格实际渲染出 6 个 实操步骤: 复杂点在于:表格内部尺寸同步有延迟,DOM 挂载完 ≠ 尺寸就绪;固定列结构隐蔽,漏一处就会视觉割裂。别省这一步。lineStyle: 'height: 40px;'(或类似固定值),它以行内样式强制锁定所有 高度,CSS 中写的 line-height 或 height 全部被覆盖。想自定义行高,第一步不是写 CSS,而是关掉这个“自动锁”。lineStyle: false。不要写成 lineStyle: 'height: auto;'——Layui 内部对非 false 值仍可能 fallback 到默认像素值。
lineStyle 字段,等效于 false
lineStyle,只接受 false,其他字符串(包括空字符串)都不可靠.layui-table-cell 的高度才真正由你写的 CSS 或 JS 控制用 CSS 控制行高时,必须同时设置 height 和 line-height 且值相等
line-height 不行,因为 是 display: table-cell,它的垂直居中依赖 height 和 line-height 严格一致。否则文字会上浮、下沉或留白错位。.layui-table-cell {
height: 36px;
line-height: 36px;
}
min-height:对 table-cell 无效,且会被父级 的 height 覆盖
height: auto; line-height: 24px; white-space: normal; word-break: break-word;
th.layui-table-cell 或更精确的 th.laytable-cell-1-0-0(列索引查 DOM)动态行高必须用 rowStyle + skin: 'nob',否则 height 不生效
row.status === 'urgent')设不同高度,唯一可靠路径是 rowStyle 回调配合 skin: 'nob'。漏掉 skin: 'nob' 是最常见失败原因——默认皮肤的 border-collapse: collapse 会让 height 失效。rowStyle 返回对象示例:rowStyle: function(row) {
if (row.level === 'high') {
return { class: 'row-high' };
}
}
.row-high td { height: 56px; line-height: 56px; box-sizing: border-box; }
.row-high { height: 56px; }, 上的 height 对 table-cell 子元素不直接传导
tr 的 display 不是 table-row,补上 .row-high { display: table-row !important; }
内容撑开高度必须在 done 回调中 setTimeout(, 0) 后测量并同步三套 tr
(主表、左/右固定列、序号列等),它们的
高度必须完全一致,否则滚动错位、hover 错行。单纯改 CSS 或只操作 .layui-table-main 不够。
done 回调里用 setTimeout(() => { ... }, 0) 确保 DOM 已挂载完毕td 的 scrollHeight 最大值,加 8–12px 余量.layui-table-main .layui-table tr、.layui-table-fixed-l .layui-table tr、.layui-table-fixed-r .layui-table tr
line-height: normal,否则旧 line-height 会拉扯文字位置











