优化后的滚动条会提亮咱们的网站页面。css
CSS-TRICKS
这个网站若是采用的是浏览器默认的滚动条,不进行优化,页面会显得很不搭。
因此该网站的滚动条样式优化以下:html
html::-webkit-scrollbar {
width: 30px;
height: 30px;
}
html::-webkit-scrollbar-thumb {
background: -webkit-gradient(linear,left top,left bottom,from(#ff8a00),to(#e52e71));
background: linear-gradient(180deg,#ff8a00,#e52e71);
border-radius: 30px;
box-shadow: inset 2px 2px 2px hsla(0,0%,100%,.25), inset -2px -2px 2px rgba(0,0,0,.25);
}
html::-webkit-scrollbar-track {
background: linear-gradient(90deg,#201c29,#201c29 1px,#100e17 0,#100e17);
}
复制代码
那么::-webkit-scrollbar
、::-webkit-scrollbar-thumb
和::-webkit-scrollbar-track
是什么以及怎么用请继续往下阅读。vue
这些伪元素仅使用在支持webkit
的浏览器上(如Chrome
和Safari
)。web
滚动条伪元素 | 做用的位置 |
---|---|
::-webkit-scrollbar | 整个滚动条 |
::-webkit-scrollbar-button | 滚动条上的按钮 (上下箭头) |
::-webkit-scrollbar-thumb | 滚动条上的滚动滑块 |
::-webkit-scrollbar-track | 滚动条轨道 |
::-webkit-scrollbar-track-piece | 滚动条没有滑块的轨道部分 |
::-webkit-scrollbar-corner | 当同时有垂直滚动条和水平滚动条时交汇的部分 |
::-webkit-resizer | 某些元素的corner部分的部分样式(例:textarea的可拖动按钮) |
在图上就能更清晰地呈现:面试
总结:这些伪元素支持Chrome
Edge
、Opera
Safari
、Android webview
、Chrome for Android
、Opera for Android
、Safari on iOS
和Samsung Internet
,不支持Firefox
、Internet Explorer
和Firefox for Android
。因此想要兼容其他浏览器,就得转Trident(IE)
内核下目录。编程
固然webkit
提供的不止这些,还有不少伪类,更丰富滚动条样式:浏览器
滚动条伪类 | 做用的位置 |
---|---|
:horizontal | 适用于任何水平方向上的滚动条 |
:vertical | 适用于任何垂直方向的滚动条 |
:decrement | 适用于按钮和轨道碎片。表示递减的按钮或轨道碎片,例如可使区域向上或者向右移动的区域和按钮 |
:increment | 适用于按钮和轨道碎片。表示递增的按钮或轨道碎片,例如可使区域向下或者向左移动的区域和按钮 |
:start | 适用于按钮和轨道碎片。表示对象(按钮 轨道碎片)是否放在滑块的前面 |
:end | 适用于按钮和轨道碎片。表示对象(按钮 轨道碎片)是否放在滑块的后面 |
:double-button | 适用于按钮和轨道碎片。判断轨道结束的位置是不是一对按钮。也就是轨道碎片紧挨着一对在一块儿的按钮。 |
:single-button | 适用于按钮和轨道碎片。判断轨道结束的位置是不是一个按钮。也就是轨道碎片紧挨着一个单独的按钮。 |
:no-button | 表示轨道结束的位置没有按钮。 |
:corner-present | 表示滚动条的角落是否存在。 |
:window-inactive | 适用于全部滚动条,表示包含滚动条的区域,焦点不在该窗口的时候。 |
根据这些知识,能够得出CSS-TRICKS
这个网站的滚动条样式:bash
30px
,垂直滚动条宽30px
#ed4f32
渐变到#f5f5f5
,边框圆角是30px
,内部阴影是x
方向上和y
方向上平移2px
和-2px
,阴影颜色分别是hsla(0,0%,100%,.25)
和rgba(0,0,0,.25)
写炫酷的滚动条样式是要积累的。ide
不会写box-shoadow
可使用Box-shadow_generator生成器工具
伪元素+伪类更能精准定位达到意想不到的效果。
html::-webkit-scrollbar-track-piece:vertical:start {
background: rgb(225, 126, 16);
}
复制代码
滚动条的上半边就是背景色是rgb(225, 126, 16)
:
html::-webkit-scrollbar-thumb:window-inactive {
background: rgb(160, 87, 221);
}
复制代码
.div-2::-webkit-scrollbar-button:decrement:hover {
background: #fff;
}
复制代码
红色 ::-webkit-scrollbar
橙色 ::-webkit-scrollbar-button
黄色 ::-webkit-scrollbar-thumb
绿色 ::-webkit-scrollbar-track
青色 ::-webkit-scrollbar-track-piece
蓝色 ::-webkit-scrollbar-corner
复制代码
textarea
下的-webkit-resizer
紫色 ::-webkit-resizer
复制代码
IE5+上的滚动条属性 | 其做用 |
---|---|
scrollbar-3dlight-color | 设置对象滚动条3d亮色阴影边框(threedlightshadow)的外观颜色。 |
scrollbar-darkshadow-color | 设置对象滚动条3d暗色阴影边框(threeddarkshadow)的外观颜色。 |
scrollbar-highlight-color | 设置对象滚动条3d高亮边框(threedhighlight)的外观颜色。 |
scrollbar-shadow-color | 设置对象滚动条3d阴影边框(threedshadow)的外观颜色。 |
scrollbar-arrow-color | 设置对象滚动条方向箭头的颜色。当滚动条出现但不可用时,此属性失效。 |
scrollbar-face-color | 设置对象滚动条3D表面的(threedface)的外观颜色。 |
scrollbar-track-color | 设置对象滚动条拖动区域的外观颜色。 |
scrollbar-base-color | 设置对象滚动条基准颜色,其它界面颜色将据此自动调整。 |
scrollbar-color | 该CSS属性设置滚动条轨道和按钮的颜色 |
在图上就能更清晰地呈现:
都是color
,因此在IE上只能改颜色
经测试IE7以上,scrollbar-3dlight-color:
、scrollbar-color
和scrollbar-darkshadow-color
就起不到做用。
因此,只要有耐心,快去实现头图的滚动条吧。
全部demo的预览地址
一个学习编程技术的公众号。天天推送高质量的优秀博文、开源项目、实用工具、面试技巧、编程学习资源等等。目标是作到我的技术与公众号一块儿成长。欢迎你们关注,一块儿进步,走向全栈大佬的修炼之路