webkit内核的浏览器滚动条定制
Posted WEB1010113045
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了webkit内核的浏览器滚动条定制相关的知识,希望对你有一定的参考价值。
::-webkit-scrollbar { /* 1 */ } ::-webkit-scrollbar-button { /* 2 */ } ::-webkit-scrollbar-track { /* 3 */ } ::-webkit-scrollbar-track-piece { /* 4 */ } ::-webkit-scrollbar-thumb { /* 5 */ } ::-webkit-scrollbar-corner { /* 6 */ } ::-webkit-resizer { /* 7 */ }
以上CSS代码所管辖的区域对就关系:以上注释中的数字与下图中数字相对应。
上图正如如下所言:
- ::-webkit-scrollbar 滚动条整体部分,其中的属性有width,height,background,border(就和一个块级元素一样)等。
- ::-webkit-scrollbar-button 滚动条两端的按钮。可以用display:none让其不显示,也可以添加背景图片,颜色改变显示效果。
- ::-webkit-scrollbar-track 外层轨道。可以用display:none让其不显示,也可以添加背景图片,颜色改变显示效果。
- ::-webkit-scrollbar-track-piece 内层轨道,滚动条中间部分(除去)。
- ::-webkit-scrollbar-thumb 滚动条里面可以拖动的那部分
- ::-webkit-scrollbar-corner 边角
- ::-webkit-resizer 定义右下角拖动块的样式
注意:对以上各个部分定义width,height时。有如下功能:若是水平滚动条,则width属性不起作用,height属性用来控制滚动条相应部分竖直方向高度;若是竖直滚动条,则height属性不起作用,width属性用来控制相应部分的宽度。
能过上面的不断的测试。在Chrome中,滚动条中的各个部分和DOM中块级元素是一样的。通过::-webkit-scrollbar等就类似于原来所说的CSS中的选择器。而{}中的属性,你就像控制一般块级元素一样简单(强大啊)。
CSS部分代码:
#scroll-1 { width:200px; height:200px; overflow:auto; } #scroll-1 div { width:400px; height:400px; } #scroll-1::-webkit-scrollbar { width:10px; height:10px; } #scroll-1::-webkit-scrollbar-button { background-color:#FF7677; } #scroll-1::-webkit-scrollbar-track { background:#FF66D5; } #scroll-1::-webkit-scrollbar-track-piece { background:url(http://www.lyblog.net/wp/wp-content/themes/mine/img/stripes_tiny_08.png); } #scroll-1::-webkit-scrollbar-thumb{ background:#FFA711; border-radius:4px; } #scroll-1::-webkit-scrollbar-corner { background:#82AFFF; } #scroll-1::-webkit-scrollbar-resizer { background:#FF0BEE; }
html结构:
<div id=\'scroll-1\'> <div > <p>请选择Webkit内核的浏览器才可以正常的看到滚动条的变化。 小天地,大世界是一个Web前端的技术博客。 主要是关于 HTML 5,CSS 3,javascript,JQuery等。除此之外,还 包含一些php语言等的实用例子。</p> <p>请选择Webkit内核的浏览器才可以正常的看到滚动条的变化。 小天地,大世界是一个Web前端的技术博客。 主要是关于 HTML 5,CSS 3,JavaScript,JQuery等。除此之外,还 包含一些PHP语言等的实用例子。</p> <p>请选择Webkit内核的浏览器才可以正常的看到滚动条的变化。 小天地,大世界是一个Web前端的技术博客。 主要是关于 HTML 5,CSS 3,JavaScript,JQuery等。除此之外,还 包含一些PHP语言等的实用例子。</p> <p>请选择Webkit内核的浏览器才可以正常的看到滚动条的变化。 小天地,大世界是一个Web前端的技术博客。 主要是关于 HTML 5,CSS 3,JavaScript,JQuery等。除此之外,还 包含一些PHP语言等的实用例子。</p> <p>请选择Webkit内核的浏览器才可以正常的看到滚动条的变化。 小天地,大世界是一个Web前端的技术博客。 主要是关于 HTML 5,CSS 3,JavaScript,JQuery等。除此之外,还 包含一些PHP语言等的实用例子。</p> </div> </div>
通过以上,我们几乎就可以来重写网站的滚动条了,但是webkit提供的还有更多的伪类,可以定制更丰富滚动条样式。本文以下内容参考:https://www.webkit.org/blog/363/styling-scrollbars/
- :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团队有计划扩展它并推动成为一个标准的伪类)
以上是关于webkit内核的浏览器滚动条定制的主要内容,如果未能解决你的问题,请参考以下文章