大家有没有觉得浏览器自带的原始滚动条很不美观,同时也有看到很多网站的自定义滚动条很酷炫,很高端,就连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的属性,来进行修饰。