elementui表格宽度适应内容_Element UI实现表格列宽随内容自适应

本文介绍了一种让Element UI表格列宽根据内容自适应的方法,通过先渲染表格,然后使用CSS和JavaScript计算并设置列宽,避免内容折行。在表格加载时利用`loading`状态隐藏表格进行计算,确保准确性。需要注意的是,这种方法不适用于表头单元格的宽度计算,以及在删除列或调整列顺序时需要更新宽度下标。此外,窗口大小变化时可能需要动态调整列宽。
摘要由CSDN通过智能技术生成

前言

对于动态获取数据的表格,如果期望单元格内容不折行,就要设定足够的宽度,同时又希望表格内容尽量紧凑,但是,由于数据不确定,所以无法预设宽度,怎么办呢?有这样一种办法:

方案

先让表格渲染

引入CSS class来让单元格内容单行显示

遍历表头的.cell和表体的.cell,算出每个元素的scrollWidth,汇总到二维数组里

考察二维数组的每个一级元素的每个单元格的宽度,找出最大值

设置的width都等于这个最大值即可

这个方案按理说,会发生表格闪烁,因为先渲染,又调整列宽的缘故。为了解决这个问题,我想到了visibility: hidden;,当hidden时,表格依然会渲染,只不过不显示,此时就可以计算各种宽度,等计算好,赋值好,再visible即可。

恰好可以借用loading变量实现切换。

template

给表格组件加上这个:

ref="listTable" class="columns-fit" :class="loading ? null : 'visible'"

我假设你采用了loading变量来让表格显示加载动画。

给每个加上width,如下:

...

...

你可以给有些列不设width,或者设置固定数值,此时其他列的下标无需调整,因为下标表示第几个列。

style</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值