el-table魔改样式出现BUG,表格内容区域出现滚动条

文章讲述了在ElementUI的el-table组件中,当设置`fixed`属性时会导致高度自适应下出现滚动条的问题。通过重置bottom负值为0px解决了这个问题,同时邀请读者分享更优解决方案和讨论其他el-table相关bug。
摘要由CSDN通过智能技术生成

问题:el-table表格内容区域在高度自适应的情况下冒出滚动条

在这里插入图片描述

解决办法:

  • 代码排查后发现时我设置了fixed:“xxx” 属性就会导致滚动条出现的问题,不设置则无。
[
  { type: 'index', label: '序号', fixed: 'left' },
  { prop: 'enterprisesName', label: '企业名称' },
  { prop: 'orderAmount', label: '销售金额', format: 'price' }
]
<el-table-column fixed="left" label="序号">
</el-table-column>
  • 设置fixed:“xxx” 后elementui就会多渲染几个css。重点看bottom:-1px,这是官方设置的值。我发现重置为bottom:-0px,问题就能解决了,下面直接贴解决代码。
    在这里插入图片描述
  • 把样式放在全局CSS中
.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column::before,
.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column::before,
.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column::before,
.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column::before,
.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column::before,
.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column::before,
.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column::before,
.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column::before,
.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column::before,
.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column::before,
.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column::before,
.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column::before,
.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column::before,
.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column::before,
.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column::before,
.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column::before,
.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column::before,
.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column::before,
.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column::before,
.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column::before,
.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column::before,
.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column::before,
.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column::before,
.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column::before {
  bottom: 0px !important;
}

还有更好的方案,希望大家尽情探讨一下。
下面还有个关于魔改el-table的bug欢迎大家提供解决思路。
BUG

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以监听 el-table 的滚动事件,并在滚动时关闭表格中的 el-select。以下是一个可能的实现: ```html <template> <div class="table-container" @scroll="handleTableScroll"> <el-table ref="table" :data="tableData"> <el-table-column prop="name" label="Name"></el-table-column> <el-table-column prop="age" label="Age"></el-table-column> <el-table-column prop="gender" label="Gender"> <template slot-scope="scope"> <el-select v-model="scope.row.gender" :disabled="selectDisabled"> <el-option label="Male" value="male"></el-option> <el-option label="Female" value="female"></el-option> </el-select> </template> </el-table-column> </el-table> </div> </template> <script> export default { data() { return { tableData: [ { name: 'John', age: 28, gender: 'male' }, { name: 'Jane', age: 24, gender: 'female' }, { name: 'Bob', age: 36, gender: 'male' }, // ... ], selectDisabled: false } }, methods: { handleTableScroll() { // 获取表格容器元素和表格元素 const tableContainer = this.$refs.table.$el.parentNode const table = this.$refs.table.$el.querySelector('.el-table__body-wrapper') // 判断表格是否滚动到了底部 if (tableContainer.scrollTop + tableContainer.clientHeight >= table.scrollHeight) { // 关闭 el-select this.selectDisabled = true } else { // 打开 el-select this.selectDisabled = false } } } } </script> ``` 在这个实现中,我们首先在 el-table 的容器元素上监听了滚动事件 `@scroll="handleTableScroll"`,然后在 `handleTableScroll` 方法中获取了表格容器元素和表格元素,并判断表格是否滚动到了底部。如果滚动到了底部,就将 `selectDisabled` 设置为 `true`,关闭所有 el-select 组件;否则,将 `selectDisabled` 设置为 `false`,打开所有 el-select 组件。最后,我们将 `selectDisabled` 绑定到所有 el-select 的 `:disabled` 属性上,以实现关闭或打开 el-select。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值