自定义浏览器滚动条样式

摘要:
感觉IE浏览器滚动条自定制功能并不是很强,只能控制一样显示各个部分的颜色而已,像宽度,结构等都无法控制,要靠出个性点的滚动条,很难!webkit内核的浏览器滚动条定制在所有浏览器,滚动条可定制性最强的当属webkit内核的浏览器了。15请选择Webkit内核的浏览器才可以正常的看到滚动条的变化。

为了有助于理解IE中滚动条样式的控制,你可以查看如下的图片:

ie-css-scroll

经过不断的测试发现,在Win8 下面,有一部分样式都起着相同的作用。估计是因为在Win8中扁平化的界面设计而重新定议了系统中滚动条!以下是Win 8下面的滚动条样式,并写出了和CSS支持的情况:

win-8--ie---scrollbar

以上所写的几个四个CSS属性,足以控制Win 8系统下,IE浏览器的滚动条样式了。但经过测试,发现,其它的四个属性仍然支持(主要是在以上几个属性空缺时,就会体现其作用)。具体如下:

  1. 关于scrollbar-track-color,scrollbar-face-color与scrollbar-base-color。直接看英语单词,你就也许能明白scroll-base-color是一个备用颜色,只要前两者未设置时,它就开始起作用了。但是你得注意,当scrollbar-base-color用来作scrollbar-track-color功能来用时,你会发现,实际颜色与设定的颜色要淡一点。不信你可以这样试试:只设置一下scrollbar-base-color看看滚动条的效果。
  2. 关于scrollbar-dark-shadow-color属性,通过测试发现Win 8下IE10,IE11滚动条并没有改变。可能是win 8的滚动条重新定义了,导致没有了隐影了吧!(仅个人猜想)
  3. 通过观察我们发现,Win 8下的滚动条中,上箭头和下箭头后面的背景颜色都已经从scroll-face-color中脱离出来了,从属于scroll-track-color属性控制。

感觉IE浏览器滚动条自定制功能并不是很强,只能控制一样显示各个部分的颜色而已,像宽度,结构等都无法控制,要靠出个性点的滚动条,很难!很难!!!

webkit内核的浏览器滚动条定制

在所有浏览器,滚动条可定制性最强的当属webkit内核的浏览器了。因为源代码开放的原因,市面上基于webkit内核的浏览器也是很难穷举完。例如有:Google Chrome、Opera(opera最近宣布使用webkit内核了)、360极速浏览器,猎豹浏览器等,搜狗浏览器······

下面我们来看一下webkit浏览器是如何强大的吧!

复制
  1. CSS
  2. ::-webkit-scrollbar {/* 1 */}
  3. ::-webkit-scrollbar-button {/* 2 */}
  4. ::-webkit-scrollbar-track {/* 3 */}
  5. ::-webkit-scrollbar-track-piece {/* 4 */}
  6. ::-webkit-scrollbar-thumb {/* 5 */}
  7. ::-webkit-scrollbar-corner {/* 6 */}
  8. ::-webkit-resizer {/* 7 */}

以上CSS代码所管辖的区域对就关系:以上注释中的数字与下图中数字相对应。

scrollbarparts

上图正如如下所言:

  • ::-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中的选择器。而{}中的属性,你就像控制一般块级元素一样简单(强大啊)。

DOME测试

css样式:

1 #scroll-1 {
2 width:200px;
3 height:200px;
4 overflow:auto;
5 }
6 #scroll-1 div {
7 width:400px;
8 height:400px;
9 }#scroll-1::-webkit-scrollbar {
10 width:10px;
11 height:10px;
12 }
13 #scroll-1::-webkit-scrollbar-button {
14 background-color:#FF7677;
15 }
16 #scroll-1::-webkit-scrollbar-track {
17 background:#FF66D5;
18 }
19 #scroll-1::-webkit-scrollbar-track-piece {
20 background:url(http://www.lyblog.net/wp/wp-content/themes/mine/img/stripes_tiny_08.png);
21 }
22 #scroll-1::-webkit-scrollbar-thumb{
23 background:#FFA711;
24 border-radius:4px;
25 }
26 #scroll-1::-webkit-scrollbar-corner {
27 background:#82AFFF;
28 }
29 #scroll-1::-webkit-scrollbar-resizer {
30 background:#FF0BEE;
31 }

HTML结构:

1 <div id='scroll-1'>
2 <div >
3 <p>请选择Webkit内核的浏览器才可以正常的看到滚动条的变化。
4 小天地,大世界是一个Web前端的技术博客。 主要是关于
5 HTML 5,CSS 3,JavaScript,JQuery等。除此之外,还
6 包含一些PHP语言等的实用例子。</p>
7 <p>请选择Webkit内核的浏览器才可以正常的看到滚动条的变化。
8 小天地,大世界是一个Web前端的技术博客。 主要是关于
9 HTML 5,CSS 3,JavaScript,JQuery等。除此之外,还
10 包含一些PHP语言等的实用例子。</p>
11 <p>请选择Webkit内核的浏览器才可以正常的看到滚动条的变化。
12 小天地,大世界是一个Web前端的技术博客。 主要是关于
13 HTML 5,CSS 3,JavaScript,JQuery等。除此之外,还
14 包含一些PHP语言等的实用例子。</p>
15 <p>请选择Webkit内核的浏览器才可以正常的看到滚动条的变化。
16 小天地,大世界是一个Web前端的技术博客。 主要是关于
17 HTML 5,CSS 3,JavaScript,JQuery等。除此之外,还
18 包含一些PHP语言等的实用例子。</p>
19 <p>请选择Webkit内核的浏览器才可以正常的看到滚动条的变化。
20 小天地,大世界是一个Web前端的技术博客。 主要是关于
21 HTML 5,CSS 3,JavaScript,JQuery等。除此之外,还
22 包含一些PHP语言等的实用例子。</p>
23 </div>
24 </div>

demo自行测试。

原创文章,转载请注明出处:小天地,大世界[http://www.lyblog.net]
文章地址:http://www.lyblog.net/detail/314.html

免责声明:文章转载自《自定义浏览器滚动条样式》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇主流框架中DOMContentLoaded事件的实现(转)Jenkins(8)构建触发器之定时构建和轮询 SCM下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

CSS3实现10种Loading效果(转)

CSS3实现10种Loading效果 原文地址:http://www.cnblogs.com/jr1993/p/4622039.html 昨晚用CSS3实现了几种常见的Loading效果,虽然很简单,但还是分享一下,顺便也当是做做笔记…… 第1种效果: 代码如下: <div class="loading"> <sp...

sencha touch textarea 手机上不显示滚动条,且不能滚动

最近在项目中发现 sencha touch 中的 textarea 在手机上不显示滚动条,也不能滚动。 在浏览器中之所以能显示滚动条滚动,那是浏览器为 textarea 添加的滚动条。 但在手机中是不会显示滚动条的。 可能在以后的版本中会有所改进吧。 于是只能另想办法了,找了一个老外重写的可滑动的 textarea (无滚动条)。 转: Ext.defin...

2-5 Sass 的 @ 规则

@import Sass 支持所有 CSS3 的 @ 规则, 以及一些 Sass 专属的规则,也被称为“指令(directives)”。 这些规则在 Sass 中具有不同的功效,详细解释如下。 @import Sass 扩展了 CSS 的 @import 规则,让它能够引入 SCSS 和 Sass 文件。 所有引入的 SCSS 和 Sass 文件都会被合...

用CSS使图片自适应显示宽度

做网站的时候经常遇到,新闻展示等,用户上传的图片太大了 自己又不去调解,导致展示的时候图片太大撑开了,使页面显示的很难。这里利用CSS属性,使图片超过展示的宽度后,给图片设置显示最大的宽度。 假如用width属性强行设定显示尺寸似乎太不智能。幸好Firefox/Opera/IE7都提供了max-width属性支持。 假定希望图片显示宽度不超过500像素,C...

用HTML,CSS和JavaScript创建iPhone/iPad应用程序

象大多数iPad粉丝和程序员一样,我有一个梦想,那就是如果不需要昂贵的Apple设备,不要繁琐的审批程序,不要为发布应用交钱就能开发iPad 应用程序该多好.现在这个梦想就要实现了,那就是网页应用程序. 那么,怎样才能让网页象看起来象本机程序一样呢?你需要做这些工作: 全屏幕:(去掉浏览器的地址栏和按钮栏);防止窗口滚动和缩放; 响应多点触摸和手势事件;...

css修改下拉列表select的默认样式

html 代码: <div> <select name=""> <option value="芝士">芝士</option> <option value="奶油">奶油</option> </select> </div> 给select添加父元素...