Vue Element Flex 布局表格嵌套问题

使用场景:在使用flex布局时,嵌套element ui 表格。

问题:父元素采用 flex 布局,子元素使用 “flex-grow:1” 以占满父元素剩余空间。然而,内部嵌套的表格(已设置 height=‘100%’)在展示数据超出父元素空间时,会撑破父元素,且应出现的滚动条未出现。即便子元素也采用同样结构的 flex 布局(将表格设置为 “flex-grow:1”),也无法解决问题。这反映出表格在 flex 布局中无法正确获取高度(问题暂未深入研究)。

<div style="height: 100%;display: flex;flex-direction: column">
  ....其他元素
  <div ref="tableBody" style="flex-grow: 1;">
       <el-table
         :height="'100%'">
        </el-table>
  </div>
</div>

解决方案:将子父元素分别设置“position”样式,表格高度参数设置为“100%”(此时高度正常且能配合父元素进行自适应滚动条也正常显示),如下所示

.parent {
   position: relative;
 }
.child {
   position: absolute;
 }

修改后代码

<div style="height: 100%;display: flex;flex-direction: column;">
  ....其他元素
  <div ref="tableBody" style="flex-grow: 1;position: relative">
       <el-table
          style="position: absolute"
         :height="'100%'">
        </el-table>
  </div>
</div>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金色稻子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值