Element表格高度根据浏览器窗口大小动态改变

`el-table`默认展示20条数据时,表格高度可能会超出当前页面的高度,此时页面会出现滚动条,我们往下拖动的时候表格下方的数据是可以呈现出来,但表头可能就被页面遮挡住了。那往下拖动时怎么固定住表头呢?Element文档里说了,可以加`height`属性。

 

比如:

<el-table  :data="tbData" stripe border height="500"></el-table>

给`height`一个高度,这样是可以解决表头固定的问题。但是又会出现一个问题,就是不同的电脑分辨率是不一样的,500高度在小分辨屏幕可能是可以的,但是大屏幕上就很不合适了。所以我们要给这个`height`一个动态的值。

我们在`data`里定义一个`tableHeight`,在`mounted`生命周期函数里添加一个方法:

// 监听浏览器窗口变化,动态计算表格高度,
// 225是表格外其它布局占的高度,这个数值根据自己实际情况修改
window.addEventListener('resize', () => {
	this.tableHeight = window.innerHeight - 225
})

然后将`tableHeight`绑定到`height`属性。

<el-table  :data="tbData" stripe border :height="tableHeight"></el-table>

这样表格高度就能随屏幕大小自适应了。

但是还有一个问题,比如最后一页的数据不满20条时,表格的高度仍然是20条数据时的高度,下面就会留出一大片空白,很不雅观。

解决方法也很简单,将`height`属性换成`max-height`即可。

<el-table  :data="tbData" stripe border :max-height="tableHeight"></el-table>

有时还需要和固定列配合,固定列高度设置:

::v-deep .el-table__fixed-right {
	right: 0 !important;
	height: 100% !important;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值