滚动条的scroll属性(怎么修改滚动条样式)

http://www.dengjie.com/temp/scroller.swfIE下的滚动条样式IE是最早提供滚动条的样式支持,好多年了,但是其它浏览器一直没有支持,IE独孤求败了。这些样式规则很简单:scrollbar-arrow-color:color;/*三角箭头的颜色*/scrollbar-face-color:color;/*立体滚动条的颜色(包

大家好,又见面了,我是你们的朋友全栈君。

http://www.dengjie.com/temp/scroller.swf

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的可视化工具,简单但是好用:

滚动条的scroll属性(怎么修改滚动条样式)

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

webkit的自定义滚动条样式

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

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

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

滚动条的scroll属性(怎么修改滚动条样式)

不过,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可以参考,比如,webkit官方的这个,具体的线上项目中也有现成的例子,比如,QQ空间的签到弹出框和豆瓣说的右侧详情栏(某条信息评论多的时候会显示)。

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

参考文章:

Styling Scrollbars

Creating custom scrollbars with CSS; How CSS isn’t great for every task

PS:中间部分术语翻译不到位,欢迎斧正。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/128941.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月15日 下午2:20
下一篇 2022年4月15日 下午2:20


相关推荐

  • 2026年win10升级补丁安装指南5步详解

    2026年win10升级补丁安装指南5步详解

    2026年3月16日
    3
  • 安卓原生镜像(中国网站)「建议收藏」

    安卓原生镜像(中国网站)「建议收藏」安卓原生镜像(谷歌中国站)找了半天百度,好不容易看到,赶紧收藏起来:原生安卓包:https://developers.google.cn/android/images?h1=zh=cn#angler

    2022年6月19日
    37
  • 为什么 CSS 动画比 JavaScript 高效?

    为什么 CSS 动画比 JavaScript 高效?大家好 我是小丞同学 一名准大二的前端爱好者这篇文章将欢快的带你了解一下 CSS 和 JS 动画的差别愿你忠于自己 热爱生活引言讲到动画 当然是非常有意思的啦 你可以往上滑一下 看看上面的封面图 是不是相当的炫酷 以为我是代码写出来的吗 那当然不可能啊 我这么摸鱼 怎么会为了个封面图上号呢废话不多说 其实上面的动图用代码实现也不会很困难 这个图是用 canva 做出来的 本文主要讲以下这些内容浏览器渲染流程回流和重绘 CSS 动画 JS 动画两者对比

    2026年3月17日
    3
  • su 命令

    su 命令su 命令可以切换成不同的用户身份 命令格式如下 root localhost su 选项 用户名选项 选项只使用 代表连带用户的环境变量一起切换 c 命令 仅执行一次命令 而不切换用户身份 不能省略 它代表切换用户身份时 用户的环境变量也要切换成新用户的环境变量 大家知道环境变量是用来定义用户的操作环境的 如果环境变量没有随用户身份切换 那么很多操作将无法正

    2026年3月20日
    1
  • er图转换成关系模型的例题_如何将ER图转化为关系模型(超详细、含例题)

    er图转换成关系模型的例题_如何将ER图转化为关系模型(超详细、含例题)如何把 ER 模型转换为关系模型这是数据库工程设计进行到逻辑设计的一重大环节 简单的说 如果概念设计是用 ER 模型 整合为全局的 ER 模型 那么在逻辑设计这块 主要任务就是把 ER 模型转换为关系模型 转换只需知道三个转换准则 1 1 遇到 1 1 关系的话在两个实体任选一个添加另一个实体的主键即可 1 N1 N 遇到 1 N 关系的话在 N 端添加另一端的主键 假如有学生和班级两个实体 一个班级可以容纳多个学生 但是一个学

    2026年3月18日
    1
  • 技术向销售学什么(一)

    技术向销售学什么(一)

    2021年8月15日
    51

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号