虽然大多数人不会关注滚动条的样式,但有些网站还是对滚动条进行了优化,比如网易邮箱。 我们可以使用CSS来设置浏览器的滚动条样式。 我们来梳理一下CSS滚动条的几个属性及其含义。
CSS设置浏览器滚动条样式并隐藏滚动条 HTML注释1
一:webkit下CSS设置滚动条
主要有以下7个属性:
::-webkit-scrollbar 整体滚动条,可以设置长度等 ①::-webkit-scrollbar-button 滚动条两端的按钮 ②::-webkit-scrollbar-track 外轨道 ③ ::-webkit-scrollbar-track-片内滚动槽 ④::-webkit-scrollbar-thumb 滚动滑块 ⑤::-webkit-scrollbar-角角 ⑥::-webkit-resizer 下角拖块样式 ⑦
如图所示:
CSS设置浏览器滚动条样式并隐藏滚动条 HTML注释2
还有一些更详细的属性:
:horizontal 水平滚动条
:vertical 垂直滚动条
:decrement 适用于按钮和外部轨道件。 用于指示按钮或外轨是否会降低窗口的位置(例如,在垂直滚动条的前面,在水平滚动条的右侧)。
:incrementdecrement 类似css改变滚动条样式,用于指示按钮或外轨是否会减少窗口的位置(例如垂直滚动条的下边缘和水平滚动条的左边缘。)
:start 伪类也适用于按钮和滑块。 它用于定义对象是否放置在滑块后面。
:end 与 start 伪类类似,标识对象是否放置在滑块前面。
:double-button 该伪类用于按钮和外部轨道。 用于确定某个键是否是位于滚动条同一端的一对键中的一个。 对于外轨,指示外轨是否靠近一对按键。
:single-button 与 double-button 伪类类似。 对于按钮来说,用于判断按钮是否独立在滚动条的一段中。 对于外轨,指示外轨是否靠近单按钮。
:no-button 用于外轨,表示外轨是否应该滚动到滚动条的末尾,例如当滚动条两端都没有按钮时。
:corner-present 用于所有滚动条轨道css改变滚动条样式,指示是否显示滚动条的圆角。
:window-inactive 用于所有滚动条轨道,指示应用滚动条的页面容器(元素)当前是否处于活动状态。 (在最近版本的webkit中,这个伪类也可以用于::selection伪元素。webkit团队计划扩展它并将其推广为标准伪类)
例子:
/* 设置滚动条的样式 */
::-webkit-scrollbar {
width: 12px;
}
/* 滚动槽 */
::-webkit-scrollbar-track {
-webkit-box-shadow: inset006pxrgba(0, 0, 0, 0.3);
border-radius: 10px;
}
/* 滚动条滑块 */
::-webkit-scrollbar-thumb {
border-radius: 10px;
background: rgba(0, 0, 0, 0.1);
-webkit-box-shadow: inset006pxrgba(0, 0, 0, 0.5);
}
::-webkit-scrollbar-thumb:window-inactive {
background: rgba(255, 0, 0, 0.4);
}
复制
二:IE下CSS设置滚动条
IE的底部部分比较简单。 定制的东西比较少,都是颜色的。
.scrollbar {
scrollbar-arrow-color: red; /*三角箭头的颜色*/
scrollbar-face-color: red; /*立体滚动条的颜色(包括箭头部分的背景色)*/
scrollbar-3dlight-color: red; /*立体滚动条亮边的颜色*/
scrollbar-highlight-color: red; /*滚动条的高亮颜色(左阴影?)*/
scrollbar-shadow-color: red; /*立体滚动条阴影的颜色*/
scrollbar-darkshadow-color: red; /*立体滚动条外阴影的颜色*/
scrollbar-track-color: red; /*立体滚动条背景颜色*/
scrollbar-base-color: red; /*滚动条的基色*/
}
复制
三:取消/隐藏滚动条
火狐浏览器:
scrollbar-width: none; /* Firefox */
复制
IE浏览器:
-ms-overflow-style: none; /* IE 10+ */
复制
Chrome 和 Safari 浏览器:
::-webkit-scrollbar {
display: none; /* Chrome Safari */
}
复制
注意:当想要隐藏滚动条时,最好将溢出显示设置为自动或滚动,以保证内容可滚动。
例子:
我们利用前面的CSS属性和overflow来实现下面的例子——隐藏水平滚动条,同时允许垂直滚动条:
.scrollbar::-webkit-scrollbar {
display: none; /* Chrome Safari */
}
.scrollbar {
scrollbar-width: none; /* firefox */
-ms-overflow-style: none; /* IE 10+ */
overflow-x: hidden;
overflow-y: auto;
}
复制