前言
刚好项目里面一直在使用的都是element,因为原生的滚动条太丑了,发现elementui中有个隐藏的组件,就是element官网使用的滚动条,可以优化滚动条样式。亲测可用,鼠标经过的时候才会显示,简单美观。
正文
首先全局引入element,import ElementUI from 'element-ui';
- 简单使用–只是用竖的滚动条
只是用竖的滚动条,外层box设置宽高,内层的内容充满,设置el-scrollbar的高度。
重要代码:.el-scrollbar__wrap { overflow: scroll; width: 110%; height: 120%; }
,为什么要设置这个宽和高呢?因为:为了把原生的滚动条挤到看不到地方!!这是很重要的。没有这个代码,竖滚动条显示正常,可横向会和原生的滚动条重合。
<template>
<div>
<div class="box">
<el-scrollbar>
<p>刚好项目里面一直在使用的都是element</p>
<p>因为原生的滚动条太丑了</p>
<p>发现elementui中有个隐藏的组件</p>
<p>优化滚动条样式</p>
<p>亲测可用</p>
</el-scrollbar>
</div>
</div>
</template>
<style>
.box {
width: 200px;
height: 100px;
background: aliceblue;
}
.el-scrollbar {
height: 100%;
}
.el-scrollbar__wrap {
overflow: scroll;
width: 110%;
height: 120%;
}
</style>
- 使用横向和竖向的滚动条
让外层盒子的内容不换行white-space: nowrap;
,其他代码相同。这个情况也适用与内部是ul,li,table等比较复杂的情况。
<template>
<div>
<div class="box">
<el-scrollbar>
<p>刚好项目里面一直在使用的都是element</p>
<p>因为原生的滚动条太丑了</p>
<p>发现elementui中有个隐藏的组件</p>
<p>优化滚动条样式</p>
<p>亲测可用</p>
</el-scrollbar>
</div>
</div>
</template>
<style>
.box {
width: 200px;
height: 100px;
background: aliceblue;
white-space: nowrap;
}
.el-scrollbar {
height: 100%;
}
.box .el-scrollbar__wrap {
overflow: scroll;
width: 110%;
height: 120%;
}
</style>
3.谷歌浏览器直接改变原生滚动条样式。
这样不用其他插件,滚动条也能很好看,不考虑兼容的时候,可以全局设置成这种样式,然后细节处用el-scrollbar
~~偷懒,
<style>
::-webkit-scrollbar {
width: 6px;
height: 6px;
}
::-webkit-scrollbar-thumb {
background-color: #eee;
border-radius: 3px;
}
<style>
小结
还有很重要的一点,在vue框架下,样式.el-scrollbar__wrap
要写到影响全局的style
中,不要写到style scope
中,不然会不起作用。
如果怕和别的样式起冲突,可以加前缀.box .el-scrollbar__wrap{ overflow: scroll; width: 110%; height: 120%;}
。宽高不是固定死的,根据自己的页面可以微调一下。
.el-scrollbar
也可以写成行内样式。
如果本文对你有帮助的话,请给我点赞打call哦~o( ̄▽ ̄)do
有其他问题留言 over~