踩坑记录之element ui 表格fixed列与正常列不一致

转自掘金本人

1628760173(1).png

问题如图

这个问题也是饿了么的老问题了,就不再赘述了。

解决方法一

1628760865(1).png

 通过审查元素发现这个不正常的盒子上有个top:68px的样式

1628761022(1).png

 正常情况下top应该为45px

所以我们可以用憨一点的方法直接给el-table__fixed-body-wrapper类写全局样式

.el-table__fixed-body-wrapper{
    top: 45px!important; //为超过行内样式权重使用important
}
复制代码

写完之后问题初步解决。

可是当页面收缩到1350px以下时候会产生另一问题

1628761480(1).png

 如图 操作列被挤压抬高,此时样式已经写死我们不便再次更改样式

解决方法二

组件内beforeRouteEnter路由导航守卫,每次页面进入前会调用改函数.

查阅文档可知element ui表格有一个doLayout()方法可以对表格进行重新布局.

整理思路:我们可以在beforeRouteEnter中通过ref拿到页面DOM然后调用它的doLayout()方法对表格重新布局然后完美解决操作栏错位问题


但是使用时发现无法在beforeRouteEnter函数中拿到this,通过查阅官方文档可知原因及解决办法:

image.png

 于是我们可以写出如下代码

beforeRouteEnter(to, from, next) {
    next((vm) => [
      vm.$nextTick(() => {
        vm.$refs.ktable.$refs.table.doLayout()  //ktable是我对table的封装,通过它拿到下面的子元素ref,再调用el-table的doLayout()方法即可
      })
    ])
  },
复制代码

通过vm解决this问题再调用doLayout()动态布局从而解决问题

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值