element中el-table单元格x轴出现却不滚动的原因

写项目遇到一个需求就是一个单元格内会放入多张图片,需要让x轴滚动方便查看一定宽高的图片

vue2配套的element不能使用<el-scrollBar></el-scrollBar>标签,vue3可以,所以只能使用overflow-x,但是设置了overflow-x:scroll之后,x轴出现,但是没有发生滚动的情况,下面是我的解决方案

//关键在于包裹图片的小div的宽和高,这里我给tableImgContent设置了最小宽度就解决了
//若不设置最小宽度,tableImgContent的大小就会随着加入图片的增多或者父元素tableImgBox
//的变化而被挤压从而变化宽高,出现有x轴滚动条但是却不会滚动的情况。

<el-table
    :data="tableData"
    border
    height="2rem"
    style="width: 80%">
    <el-table-column
      prop="a"
      label="A"
       align="center"
      width="180">
    </el-table-column>
    <el-table-column
      prop="isShow"
      label="是否出现"
       align="center"
      width="180">
    </el-table-column>
    <el-table-column
      prop="img"
      label="图片"
       align="center"
      >
      <template slot-scope="scope">
        
          <div class="tableImgBox">

            <div v-for="(item,index) in scope.row.img" :key="index" class="tableImgContent">
              <img :src="item" alt="">
            </div> 
          </div>
    </template>
    </el-table-column>
  </el-table>

//css部分
.tableImgBox {
  height: 50px;
  display: flex;
  overflow-x: scroll;
  overflow-y: hidden; /* 隐藏纵向滚动条 */
  .tableImgContent {
    /* 每个图片容器的最小宽度 */
    min-width: 0.3rem; 
    height: 50px; 
    img {
/*使其能完全适应父元素的大小*/
      width: 100%;
      height: 100%;
    }

  }
}



在使用 `el-table` 时,当表格内容宽度超出容器时,横向滚动条可能会出现无法滚动滚动后消失的问题。这通常与样式设置、容器高度限制以及滚动行为有关。以下是一些解决 `el-table` 横向滚动条无法滚动的方法: ### 固定横向滚动条位置并保持可见 为了确保横向滚动条始终可见并且可以操作,可以使用 `position: sticky` 来将其固定在可视区域底部,同时设置合适的 `max-height` 以保证内容区域可以滚动[^4]。 ```css .el-table { :deep(.el-scrollbar__bar.is-horizontal) { position: sticky; bottom: 0; left: 0; right: 0; } :deep(.el-scrollbar) { position: relative; max-height: calc(100vh - 310px); /* 根据实际布局调整高度 */ overflow-y: auto; } ::-webkit-scrollbar { width: 6px; /* 设置纵向滚动条的宽度 */ } } ``` ### 强制显示横向滚动条 如果希望横向滚动条始终显示而是在滚动后消失,可以通过修改 `el-table__body-wrapper` 的高度并减去表头高度来实现,从而让横向滚动条始终处于可视区域内[^3]。 ```css ::v-deep { .el-table__body-wrapper { height: calc(100% - 40px); /* 减去表头高度 */ overflow-y: auto; } } ``` ### 自定义滚动条样式 通过自定义滚动条样式,确保横向滚动会因为某些默认行为而消失或隐藏。可以使用 `::-webkit-scrollbar` 伪类来自定义滚动条外观[^2]。 ```css .is-scrolling-left::-webkit-scrollbar { display: block; width: 5px; /* 竖向滚动条 */ height: 5px; /* 横向滚动条 */ background: #051f3e; } ::-webkit-scrollbar-thumb { background: #bee5ff; border-radius: 6px; } ``` ### 手动添加滚动条容器 如果上述方法无法满足需求,可以在 `el-table` 外部手动包裹一个具有固定宽度和 `overflow-x: auto` 的容器,这样即使表格内容超出也能通过外部滚动条进行横向滚动[^1]。 ```html <div class="table-container"> <el-table :data="tableData" style="width: 100%"> <!-- 表格列定义 --> </el-table> </div> ``` ```css .table-container { overflow-x: auto; white-space: nowrap; } ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值