CSS修改滚动条样式
IE浏览器自定义滚动条样式
IE是最早实现滚动条样式设置的,通过相关CSS属性即可
scrollbar-arrow-color: color;
三角箭头的颜色scrollbar-face-color: color;
立体滚动条的颜色(滑块颜色)scrollbar-3dlight-color: color;
立体滚动条亮边的颜色scrollbar-highlight-color: color;
滚动条的高亮颜色(左阴影?)scrollbar-shadow-color: color;
立体滚动条阴影的颜色(滑块阴影)scrollbar-darkshadow-color: color;
立体滚动条外阴影的颜色scrollbar-track-color: color;
立体滚动条背景颜色(滚动条导轨)scrollbar-base-color:color;
滚动条的基色
示例代码
html{
scrollbar-arrow-color:red; /*三角箭头颜色*/
scrollbar-face-color:yellow; /*滑块颜色*/
scrollbar-shadow-color: green; /*滑块阴影*/
scrollbar-track-color: #f90; /*滚动条导轨颜色*/
}
经过实际测试,好多属性并无明显效果。示例代码中所有使用的属性,都是有明显效果的。 IE的相关设置,只能修改一下相关颜色,其他无法设置。
Webkit系列浏览器自定义滚动条样式
以webkit作为内核的浏览器主要有chrome、Safari、Opera以及各种国产壳浏览器,另外移动端浏览器基本上一wekit内核为主,所以所webkit内核浏览器占据了大量的市场份额。 webkit浏览器定义了大量的 伪元素选择器
::-webkit-scrollbar
滚动条整体部分::-webkit-scrollbar-button
滚动条两端的按钮::-webkit-scrollbar-track
滑动轨道::-webkit-scrollbar-track-piece
内层轨道,滚动条中间部分(除去)::-webkit-scrollbar-thumb
滑块::-webkit-scrollbar-corner
边角::-webkit-resizer1
定义右下角拖动块的样式
除了这些伪元素选择器,webkit还定义了大量的伪类选择器
:horizontal
horizontal伪类应用于水平方向的滚动条:vertical
– vertical伪类应用于竖直方向的滚动条:decrement
– decrement伪类应用于按钮和内层轨道(track piece)。它用来指示按钮或者内层轨道是否会减小视窗的位置(比如,垂直滚动条的上面,水平滚动条的左边。):increment
– increment伪类和decrement类似,用来指示按钮或内层轨道是否会增大视窗的位置(比如,垂直滚动条的下面和水平滚动条的右边。):start
– start伪类也应用于按钮和滑块。它用来定义对象是否放到滑块的前面。:end
– 类似于start伪类,标识对象是否放到滑块的后面。:double-button
– 该伪类以用于按钮和内层轨道。用于判断一个按钮是不是放在滚动条同一端的一对按钮中的一个。对于内层轨道来说,它表示内层轨道是否紧靠一对按钮。:single-button
– 类似于double-button伪类。对按钮来说,它用于判断一个按钮是否自己独立的在滚动条的一段。对内层轨道来说,它表示内层轨道是否紧靠一个single-button。:no-button
– 用于内层轨道,表示内层轨道是否要滚动到滚动条的终端,比如,滚动条两端没有按钮的时候。:corner-present
– 用于所有滚动条轨道,指示滚动条圆角是否显示。:window-inactive
– 用于所有的滚动条轨道,指示应用滚动条的某个页面容器(元素)是否当前被激活。(在webkit最近的版本中,该伪类也可以用于::selection伪元素。webkit团队有计划扩展它并推动成为一个标准的伪类)- 另外,
:enabled
、:disabled
、:hover
和:active
等伪类同样可以用于滚动条中。
示例代码
/*定义滚动条的高宽*/
body::-webkit-scrollbar {
width: 16px;
height: 16px;
}
/*CSS的坐标系,左上角为(0,0),往右往下为增加,往上往左为减少*/
/*定义滚动条渐增按扭的样式 */
body::-webkit-scrollbar-button:end:increment {
background-image: url(./images/scroll_cntrl_dwn.png);
}
/* 定义滚动条渐减按扭的样式 */
body::-webkit-scrollbar-button:start:decrement {
background-image: url(./images/scroll_cntrl_up.png);
}
/* 垂直滚动条的第三层轨道的上段 */
body::-webkit-scrollbar-track-piece:vertical:start {
background-image: url(./images/scroll_gutter_top.png), url(./images/scroll_gutter_mid.png);
background-repeat: no-repeat, repeat-y;
}
/* 垂直滚动条的第三层轨道的下段 */
body::-webkit-scrollbar-track-piece:vertical:end {
background-image: url(./images/scroll_gutter_btm.png), url(./images/scroll_gutter_mid.png);
background-repeat: no-repeat, repeat-y;
background-position: bottom left, 0 0;
}
/* 垂直滚动条的滑动块 */
body::-webkit-scrollbar-thumb:vertical {
height: 56px;
-webkit-border-image: url(./images/scroll_thumb.png) 8 0 8 0 stretch stretch;
border-width: 8 0 8 0;
}