CSS如何自定义滚动条样式


css实现滚动条样式有时候非常有用,客户既然提出来了我们就应该满足。这里我们就来总结一下。当然,兼容所有浏览器的滚动条样式目前是不存在的。

IE下的滚动条样式

IE是最早提供滚动条的样式支持,嗯,好多年了,但是其它浏览器一直没有支持,IE独孤求败了。

这些样式规则很简单:

  • 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; /*滚动条的基色*/

大概就这些,你也可以定义cursor来定义滚动条的鼠标手势。

这里,很久以前danger做了个基于Flash的可视化工具,简单但是好用:

选中CSS选项即可自动生成CSS样式,这里不再过多的介绍了。嗯,多谢大猫老师推荐。

webkit的自定义滚动条样式

yes,这里才是今天要重点介绍的。

从上一部分的样式名中就可以看到,IE只能定义相关部分的color等属性,这样太不灵活了。

webkit最近实现了对滚动条的支持,先看一个简单的demo:

不过,webkit不再是用简单的几个CSS属性,而是一坨的CSS伪元素:

  • ::-webkit-scrollbar 滚动条整体部分
  • ::-webkit-scrollbar-button 滚动条两端的按钮
  • ::-webkit-scrollbar-track 外层轨道
  • ::-webkit-scrollbar-track-piece 内层轨道,滚动条中间部分(除去)
  • ::-webkit-scrollbar-thumb (拖动条?滑块?滚动条里面可以拖动的那个,肿么翻译好呢?)
  • ::-webkit-scrollbar-corner 边角
  • ::-webkit-resizer 定义右下角拖动块的样式

通过这些伪元素,可以完全的重写一个网站的滚动条样式。

当然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 等伪类同样可以用于滚动条中。

关于具体的demo,这里不再做了,网上已经有很多demo可以参考,比如,QQ空间的签到弹出框和豆瓣说的右侧详情栏(某条信息评论多的时候会显示)。

值得一提的是,webkit的这个伪类和伪元素的实现很强大,虽然类目有些多,但是我们可以把滚动条当成一个页面元素来定义,也差不多可以用上一些高级的CSS3属性,比如渐变、圆角、RGBa等等,当然有些地方也可以用图片,然后图片也可以转换成Base64,总之,可以尽情发挥了



相关阅读:
asp查询xml的代码 不刷新页面查询的方法
利用jQuery 实现GridView异步排序、分页的代码
格式字符串在JavaScript中的应用
查找运行系统里的bad sql语句的好方法
Linux VI编辑器中的复制与粘贴
PHP EOT定界符的使用详解
W3C Widget 配置与打包
Javascript实现的鼠标经过时播放声音
用javascript 转换外部链接样式
对话Linux核心专家:多版本是Linux灵魂
cnct.batch 批处理不错的东西%cd%
JavaScript发展与互联网
javascript表达式和运算符
15个提升WordPress用户工作效率的工具
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 梦里的幸福是醒来的痛 元宵节逛灯会作文300字 作文 读《童年》有感 我的伤,妈妈的痛 小学四年级作文350字:地震和火灾演习 大器何必晚成 辛弃疾《沁园春·叠嶂西驰》 又到金秋700字 最近骗子太多 工商行政管理工作会议上的讲话 高中高二作文500字:亲情 人生需要变通作文800字 家乡的小河400字 给乞讨的歌手 房产国庆节活动方案 2015,我对生活的理解(随笔) 夏天的夜晚500字 小学六年级作文800字:人生最难忘的一堂课 秋色作文100字 荷花喷泉350字 英语口语句子 Any thing else 辅助工岗位职责 假装彪悍的姑娘,到最后都能幸福沉稳的站在土地上 端午节送给有个性人的短信 小学四年级作文400字:我的小制作——花蝴蝶 走进千家万户歌词串词朗诵词 行政工作总结结尾 珍惜自己的那两扇明窗作文300字 区工委宣传部区政策法制处五五普法工作规划 商务经济学专业毕业实习报告 别时容易 初中暑假英语日记30字5篇 永远不变质的友谊作文500字 销售代理协议 海关管理专业实习周记 面对困难 小学三年级作文350字:公园寻春 暑假日记(十三) 描写落日的作文 酒店委托经营合同 中文外教老师求职信范文 学习党的十八届五中全会精神知识竞赛试题及答案 我发现了身边的美 公推公选领导干部述职报告 一道道门,把人吸入深渊 美丽花城,和谐家园 鸡翅作文50字 备考2011高效学习方案政治考点专项:哲学的意识是客观存在的反映 优美的句子 小学六年级作文550字:世界上处处留存着温暖-----读《非典英雄》有感

Copyright © 2016 phpStudy |