大家有没有觉得浏览器自带的原始滚动条很不美观,同时也有看到很多网站的自定义滚动条很酷炫,很高端,就连chrome32.0之后都抛弃了原始的滚动条,明显好看多了,那么浏览器如何自定义滚动条呢?
分割线为敬
首先:
谈谈兼容性:webkit支持拥有overflow属性的区域,列表框,下拉菜单,textarea等滚动条自定义样式,所以用处还是很大的,当然兼容所有浏览器滚动条的样式目前还是不存在的
实例:经典的demo
于是好奇心查了一下兼容性:废话不多说看图
这里是滚动条的一些属性
- ::-webkit-scrollbar 滚动条整体部分
- ::-webkit-scrollbar-thumb 滚动条里面的小方块,能向上向下移动(或往左往右移动,取决于是垂直滚动条还是水平滚动条)
- ::-webkit-scrollbar-track 滚动条的轨道(里面装有Thumb)
- ::-webkit-scrollbar-button 滚动条的轨道的两端按钮,允许通过点击微调小方块的位置。
- ::-webkit-scrollbar-track-piece 内层轨道,滚动条中间部分(除去)
- ::-webkit-scrollbar-corner 边角,即两个滚动条的交汇处
- ::-webkit-resizer 两个滚动条的交汇处上用于通过拖动调整元素大小的小控件
直接上demo
/*定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸*/
::-webkit-scrollbar
{
width: 16px;
height: 16px;
background-color: #F5F5F5;
}
/*定义滚动条轨道 内阴影+圆角*/
::-webkit-scrollbar-track
{
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
border-radius: 10px;
background-color: #F5F5F5;
}
/*定义滑块 内阴影+圆角*/
::-webkit-scrollbar-thumb
{
border-radius: 10px;
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
background-color: #555;
}
好奇的小伙伴可以,打开你喜欢的编辑器测试一下,最好在chrome浏览器下测试,之后再去别的浏览器下看看效果,你就知道chrome的强大,毒瘤IE的坑爹。
详细:定义滚动条就是利用了伪元素与伪类
伪类::link、:hover、:visited、:active、:focus等等一些基于当前元素处于的状态。
伪元素::first-line、:before、:after等等一些对元素特定内容的操作。
webkit中可以吧滚动条当做一个页面元素来定义,在结合CSS3的属性,来进行修饰。