el-table滚动条样式修改

我们知道,el-table滚动条样式默认取的好像是我们全局滚动条的样式,当我们修改了全局滚动条的样式后,table表格的滚动条样式也随之而变。

比如,当我们修改了全局滚动条的样式,使其变得窄一点

// 滚动条样式
::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
::-webkit-scrollbar-track {
  background: rgb(239, 239, 239);
}
::-webkit-scrollbar-thumb {
  background: #bfbfbf;
  border-radius: 10px;
}

el-table滚动条样式修改_第1张图片

 但是,表格的滚动条也随之边的很窄,不方便用户操作,我们就要对表格进行单独的滚动条样式修改,如下

.el-table__body-wrapper::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

el-table滚动条样式修改_第2张图片

 这样看着很完美,但是如果我们有固定列,问题又随之出现了,如下图el-table滚动条样式修改_第3张图片

 为啥会这样呢? 审查一下元素,发现是动态计算的

el-table滚动条样式修改_第4张图片

 我们再看看el-table的源码,看看他得高度是如何计算的

el-table滚动条样式修改_第5张图片

el-table滚动条样式修改_第6张图片

 发现了这个变量this.gutterWidth = scrollbarWidth(),这个scrollbarWidth是什么鬼呢?我们继续追查

el-table滚动条样式修改_第7张图片

 el-table滚动条样式修改_第8张图片

 原来我们框架在渲染组件之前,在body中创建了一个class名为el-scrollbar__wrap的div,并获取了这个div的滚动条宽度。

找到了根原因,那么我们是不是再修改一下这个class名为el-scrollbar__wrap的div的滚动条样式,就解决了我们的问题呢?

.el-table__body-wrapper, .el-scrollbar__wrap {
  &::-webkit-scrollbar {
    width: 10px;
    height: 10px;
  } 
}

el-table滚动条样式修改_第9张图片

果然,完美解决!

你可能感兴趣的:(css,css3,html,vue,elementui)