element-ui table组件如何高度自适应、el-table的x、y轴都出现滚动条右下角会出现一个小白块 解决方案

 

前言

想要表格的高度自适应屏幕,保证table能一屏内展示完。


 elementUI的版本:

"element-ui": "^2.14.1",

关键代码:

     <div  style="height: 80vh;">
        <el-table
            style="width: 100%;background: transparent;overflow:auto;"
            v-loading="table.loading"
            height="100%"
            :data="table.data"
          >
          <el-table-column prop="lastLiveView" label="最近30天观看次数" min-width="120">
          </el-table-column>
          <el-table-column prop="yestLiveAvg" label="昨日直播均价" min-width="120">
          </el-table-column>-->
          <el-table-column prop="yestBargainAvg" label="昨日成交均价" min-width="120">
          </el-table-column>
          <el-table-column prop="yestLiveQuantity" label="昨日直播销量" min-width="120">
          </el-table-column>
          <el-table-column prop="yestLiveSales" label="昨日销售额" min-width="120">
          </el-table-column>
          <el-table-column prop="whetherV" label="是否大V" min-width="90">
          </el-table-column>
          <el-table-column prop="syntheticAbility" label="综合能力分" min-width="110">
          </el-table-column>
          <el-table-column prop="serviceScore" label="服务评分" min-width="90">
          </el-table-column>
        </el-table>
      </div>

Table 的高度,默认为自动高度。如果 height 为 number 类型,单位 px;如果 height 为 string 类型,则这个高度会设置为 Table 的 style.height 的值,Table 的高度会受控于外部样式。

总结:

如果想要table的高度自适应,可以在table组件外面包一层div,设置div的高度为自适应 (单位为 vh 或 clac(100% - 任意数值) 计算),再给el-table组件写上height="100%"。

 


另外,当el-table的x、y轴都出现滚动条且表格的背景透明时,表格的右下角会出现一个小白块,如下

css设置如下:

::-webkit-scrollbar-corner{
  background: transparent;
}

如有问题欢迎交流~~!

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
可以使用element-ui的`<el-table>`组件中的`<el-table-column>`的`scopedSlots`属性和`<template>`标签实现合并第一列的效果。具体实现步骤如下: 1. 在`<el-table>`中添加`<el-table-column>`,设置`prop`属性为第一列的数据字段,例如`prop="name"`。 2. 在`<el-table-column>`中添加`<template>`标签,设置`slot-scope`属性为`{row, $index}`。 3. 在`<template>`标签中添加`<div>`标签,在其中添加判断逻辑,如果是第一行,则设置`rowspan`属性为总行数,否则设置`display: none`。 完整代码如下: ```html <template> <el-table :data="tableData" style="width: 100%"> <el-table-column prop="name" label="姓名"> <template slot-scope="{row, $index}"> <div v-if="$index === 0" :rowspan="tableData.length">{{row.name}}</div> <div v-else style="display: none">{{row.name}}</div> </template> </el-table-column> <el-table-column prop="age" label="年龄"></el-table-column> <el-table-column prop="address" label="地址"></el-table-column> </el-table> </template> <script> export default { data() { return { tableData: [ { name: '张三', age: 18, address: '北京市' }, { name: '李四', age: 20, address: '上海市' }, { name: '王五', age: 22, address: '广州市' } ] } } } </script> ``` 在上面的代码中,我们将第一列的`prop`属性设置为`name`,然后在`<template>`标签中设置了判断逻辑,如果是第一行,则设置`rowspan`属性为总行数,否则设置`display: none`。这样就可以实现合并第一列的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值