ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Layui 表格表头换行:CSS 覆盖表头高度完整方案

Layui 表格表头换行:CSS 覆盖表头高度完整方案 Layui 表格表头换行CSS 覆盖表头高度完整方案【免费下载链接】layui一套遵循浏览器原生态开发模式的 Web UI 组件库。项目地址: https://gitcode.com/GitHub_Trending/la/layui表头挤成一坨做 Layui 表格表头换行多半是被业务方逼的表头文案一长单行格子直接截成本月销售…用户反复反馈看不懂。这问题不用碰组件源码一段覆盖样式就能搞定下面按为什么、怎么办、哪里会翻车讲清楚。机制拆解CSS 覆盖表头高度为什么够用Layui 的表头默认单行是因为单元格样式把内容钉死了四样东西改回来就能换行white-space: nowrap强制文字不折行换成normal才是换行的根height: 38px把单元格高度锁死多行内容会被切掉得改成height: auto让格子自己长overflow: hidden配text-overflow: ellipsis把多余部分裁成省略号这两个要一起关掉表头和表身共用.lay-table-cell这个类全局一改表身就遭殃选择器必须限定在th里面。一句话不是表格组件不让换行是默认样式把它按成了单行。 三步搞定从结构到样式搭结构先铺一个最小页面。表格外面套一层带类名的容器这个类名就是后面样式的挂钩点。body !-- 外层类名 wrap-h 是自定义样式的挂钩点 -- div classwrap-h table iddemo-table/table /div script src./assets/dist/layui.js/script script layui.use(() { layui.table.render({ elem: #demo-table, data: [{ a: 1 }], // 标题故意写长先把截断复现出来 cols: [[{ field: a, title: 本月销售额含税含退款冲抵项 }]] }); }); /script /body写样式覆盖样式只有四个关键属性。作用域挂在容器类上不污染别的表格。/* 只作用于 wrap-h 容器内的表头避免全局生效 */ .wrap-h .lay-table th .lay-table-cell { white-space: normal; /* 这行控制换行nowrap 才是单行的根 */ overflow: visible; /* 内容不再被裁掉 */ text-overflow: clip; /* 顺手把省略号关掉 */ height: auto; /* 拆掉固定高单元格自己撑开 */ line-height: 1.6; }Layui 表格表头换行效果长文案按两行完整显示JS 动态计算表头高度兜住固定列带左右固定列列钉在两侧不动时固定列是一张独立叠加的表表头得和主表头一样高否则错位。用 JS 量一次兜底const view document.querySelector(.wrap-h .lay-table-view); // 取表头单元格里最高的一格scrollHeight 是元素实际撑开的高度 const cells view.querySelectorAll(.lay-table-header .lay-table-cell); let maxH 0; cells.forEach((c) { maxH Math.max(maxH, c.scrollHeight); }); // 固定列的表头也设成这个高度防止错位 view.querySelectorAll(.lay-table-fixed-r .lay-table-header) .forEach((h) (h.style.height maxH px));三步走完表头两行完整显示排序、固定列都不受影响。别踩这些坑这三个坑我上次全踩过帮你省点时间。坑一改了样式还有省略号。现象是表头依然显示…。原因是只改了white-spaceoverflow: hidden还在裁内容。解法是overflow和text-overflow一起覆盖三件套缺一个都不行。坑二主表头换行了固定列表头没跟。现象是主表头两行左侧固定列还是单行上下错位。原因是固定列独立渲染主表的行高拉不动它。解法就是上一段的 JS 同步高度样式选择器里也记得带上.lay-table-fixed。坑三表身跟着变松了。现象是数据行行高也变了。原因是直接改了.lay-table-cell表头表身共用这个类。解法是在选择器里加上th只让表头换行。再玩两把多级表头cols支持嵌套定义分组表头多层表头换行是同一套思路。每层th都套用同样的换行样式高度会随行数自然叠加不用额外处理。动态高度文案长度不可控时别写死height。用 JS 动态计算表头高度——取各表头单元格scrollHeight的最大值回写到表头容器数据变动后再跑一遍就行。Layui 表格表头换行在多级表头分组下的效果表格渲染源码可以看 src/components/table.js页面样例见 tests/visual/table.html。整套方案不碰组件源码只靠样式覆盖加几行同步脚本回滚成本低到删掉几行 CSS 就行。边界也要说清它管的是显示层列宽实在不够时完整内容建议交给 tooltip。【免费下载链接】layui一套遵循浏览器原生态开发模式的 Web UI 组件库。项目地址: https://gitcode.com/GitHub_Trending/la/layui创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表