element-plus table 在flex布局下不能自适应

2025-05-13  本文已影响0人  嘻哈章鱼小丸子

背景

table 大致布局如下:

  <div class="rate-column">
                <div class="item1"></div>
                <div  class="item2"></div>
                <div  class="item3">
                   <el-table:data="tableData" style="width: 100%">
                     <el-table-column min-width="40">
                      <template #default="{ $index }">
                       <BaseSvgIcon v-if="$index === 0" :symbol-id="'golden'" />
                      </template>
                    </el-table-column>
                   </el-table>
                </div>
            </div>

----scss-------
.rate-column{
    width: 100%;
    display: flex;
    flex-direction: row;
    align-items: start;
    justify-content: space-between;
    gap: 16px;
    .item1,.item2{
        flex:1
    }
    .item3{
        flex:2
    }
}

问题

拖动窗口的时候,table 只能自适应变大,不能自适应变小,导致item1和item2 被挤压

尝试解决一

网上的解决方案,意思给item3(表格的父元素) 添加以下样式:

overflow-x: hidden;

即可解决。尝试结果如下图:

失败
三部分并没有按照112的比例分配,并且table 还有滚动条!
此方案失败。

尝试解决二

item3 同级的所有flex 元素(即item1,item2,item3) 加overflow-x: hidden;属性,结果如下图:

成功
怎样拉伸缩放都没问题,成功!

最终添加的css 样式:

.rate-column{
       > div {
         overflow-x: hidden;
      }
}

pppps:问题二

发现个小问题,上图中table第一列里面的图片旁边会出来点点,一开始只是一个,缩放后发现是省略号,仔细排查后发现.el-table .el-table__cell 的样式是默认超长省略的:


省略号

所以应该是第一列的宽度不够了,加宽点就好啦。

上一篇 下一篇

猜你喜欢

热点阅读