前言:
本文此次介绍的是一个目前使用还算广泛的前端框架layui的一个缺陷,我们在做表格渲染的时候常常会出现某些行可能内容比较多,导致表格装不下,这时候,表格将会自动换行,将行高自动撑开变高,在没有固定某列的时候当然没有什么问题,但当你想把某列固定起来,那就不行了,想手动调整行高却发现并没有此类功能属性,那怎么办呢,当然是找度娘或者去官网论坛找解决方案了。找度娘确实是个好办法,就这么打开百度搜索,输入:layui表格固定列与其他列的行高不一致
,会找到很大一堆似乎是你想要的东西,然后打开置顶的博客,一看截图,哎,还真的和自己遇到的问题一模一样,然后将他粘贴复制到自己的代码中,哎刷新一下页面,哎,好像真的解决了呢耶,好开心啊。但其实并没有完全解决,当我在自己的固定列点击编辑按钮之后,在弹窗中编辑一下内容保存,然后你发现表格并没有完全自适应,还有一块丢了,这就很恼火了,明明度娘说可以的,其实呢确实是可以,但就有那么几个页面就是不行,在我的项目中就遇到了,这可能就是别人说的钉子页
了,怎么搞他就是不一样,不想和其他页面一样听从指挥,你说愁不愁,反反复复的找度娘找度娘却发现全部都是一样的解决方案,那没救了,度娘帮不了我了,那我去layui的官网吧,找找官网有没有解决方案,发现也没有,那怎么办呢,搞得我很是头疼啊,哎算了吧,还是自己想办法吧,说的我还有点小激动,整的又搞了几百字了,首先声明一下哈,我不是在凑字数哈,嗯,前菜完了,现在就来正菜吧。
问题贴图
解决后的效果图
解决方案
1、表格单元格自适应CSS样式(此CSS样式必须设置,才能做到行高自适应
)
.layui-table-cell {
height: auto;
font-size: 14px;
padding: 0 5px;
overflow: visible;
text-overflow: inherit;
white-space: normal;
word-break: break-all;
}
2、在表格渲染的代码中加入下列代码即可
,done: function (res, curr, count) {
// 保存行高的数组
var height = [];
// 遍历行,将所有行的高度保存到数组中
$(".layui-table-body tr").each(function (index, val) {
height.push(