elementui table组件 滚动高度自适应一屏大小、高度占满剩余空间

场景:

        后台管理系统,数据常用表格处理、配合搜索、分页、增删改查等...

        通常最佳视觉为一屏展示,顶部有导航、查询条件等,中间表格最高占满剩余高度。

        给table设置高度,超出可滚动,但不好适应不同尺寸的屏幕。

        不给table设置高度,则内容多的情况会超出一屏。

处理:

        1.给table包一层父级元素(table-box)

        2.给table-box设置高度,通常顶部内容都是定高的,所以使用calc(100vh - topHieight)就可以得到适应屏幕的剩余高度;如果使用flex布局,在顶部区域定高的情况下,设置table-box的flex-gow: 1;占满剩余空间,也可以适应剩余高度。

        3.用ref标识table-box,在mounted生命周期函数里使用js获得容器高度this.$refs.tableBox.clientHeight

                *减去翻页的高度,因为容器包含了表格和翻页

        4.将获得的高度赋予table

                *elementui table的height用于控制滚动高度,内容超出后滚动。

                *这里面的height用于内部设定滚动区域的高度,不会动态更新,所以使用v-if等获取到tableHeight后再显示,方可起效。

                *示例中使用max-height代替height, 可适应内容不够一屏时的自动高度。

<div
    class="table-box"
    ref="tableBox"
>
    <el-table
        v-if="tableHeight"
        :max-height="tableHeight + 'px'"
        :data="tableData"
    >
        <el-table-column></el-table-column>
    </el-table>
</div>
data(){
    return {
        tableHeight:0,
    }
},
mounted(){
    //减去翻页的高度,因为容器包含了表格和翻页
    this.tableHeight = this.$refs.tableBox.clientHeight - 40;
}
.table-box{
    height:calc(100vh - 190px);/*示例中顶部区域固定高度190px*/
}

  • 4
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值