当内容超出容器时,容器会出现滚动条,其自带的滚动条有时无法满足我们审美要求,那么我们可以通过
css伪类
来实现对滚动条的自定义
滚动条的css样式主要有三部分组成
::-webkit-scrollbar : 定义了滚动条整体的样式
::-webkit-scrollbar-thumb : 滑块部分
::-webkit-scrollbar-track : 轨道部分
下面以overflow-y:auto;
为例(overflow-x:auto
同)
html
<div class="test test-1">
<div class="scrollbar"></div>
</div>
css
.test{
width: 50px;
height: 200px;
overflow: auto;
float: left;
margin: 5px;
border: none;
}
.scrollbar{
width: 30px;
height: 300px;
margin: 0 auto;
}
/*滚动条整体样式*/
.test-1::-webkit-scrollbar {
/*高宽分别对应横竖滚动条的尺寸*/
width: 10px;
height: 1px;
}
/*滚动条里面小方块*/
.test-1::-webkit-scrollbar-thumb {
border-radius: 10px;
-webkit-box-shadow: inset 0 0 5px rgba(0,0,0,0.2);
background: #535353;
}
/*滚动条里面轨道*/
.test-1::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 5px rgba(0,0,0,0.2);
border-radius: 10px;
background: #EDEDED;
}
效果如下如:
a. 改变滚动条的宽度:在
::-webkit-scrollbar
中改变即可;
b. 改变滚动条滑块的圆角,在::-webkit-scrollbar-thumb
中改变;
c. 改轨道的圆角在::-webkit-scrollbar-track
中改变;
此外,滚动条的滑块不仅可以填充颜色还可以填充图片如下
html
<div class="test test-5">
<div class="scrollbar"></div>
</div>
css
/*滚动条整体样式*/
.test-5::-webkit-scrollbar {
width: 10px;
height: 1px;
}
/*滚动条里面小方块*/
.test-5::-webkit-scrollbar-thumb {
border-radius: 10px;
background-color: #F90;
background-image:
-webkit-linear-gradient(
45deg,
rgba(255, 255, 255, .2) 25%,
transparent 25%,
transparent 50%,
rgba(255, 255, 255, .2) 50%,
rgba(255, 255, 255, .2) 75%,
transparent 75%,
transparent
);
}
/*滚动条里面轨道*/
.test-5::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 5px rgba(0,0,0,0.2);
/*border-radius: 10px;*/
background: #EDEDED;
}
效果如下
以上就可以做出自己喜欢的滚动条了
如果文档中会有多个滚动条出现,而且希望所有的滚动条样式是一样的,那么伪元素前面不需要加上
class
、id
、标签名
等之类的任何东西。