浏览器滚动条 --- 自定义“衣裳”

由于种种原因,浏览器的默认滚动条“衣裳”实在是 (ˉ▽ ̄~)~~,为了“美”,本人结合万维网各大神给的经验和自己的实践,做了此篇总结。若有错误,请在评论里给出,我会及时更改。

我在电脑上打开了一些浏览器,先观察一下,其中IE浏览器版本(10-5)在我电脑上显示是一致的,火狐版本为 59.0.2。如下图(1)可见,除了火狐浏览器和Opera浏览器的样式与其他浏览器样式差别较大,其余样式差别不大,主要是颜色的不同。

不知道为什么我放不上图片,╭(╯^╰)╮ ε=唉 !

(一)专属IE的“衣裳”

网上找到一个不错的分享,我自己在总结下,内容原网址

滚动条样式支持情况支持浏览器版本可否继承描述
scrollbar-3dlight-colorIE特有属性IE5.5 y设置滚动框的和滚动条箭头左上边缘的颜色
scrollbar-highlight-colorIE特有属性IE5.5 y设置滚动框的和滚动条箭头左上边缘的颜色
scrollbar-face-colorIE特有属性IE5.5 y设置滚动框和滚动条箭头的颜色
scrollbar-arrow-colorIE特有属性IE5.5 y设置滚动条箭头的颜色
scrollbar-shadow-colorIE特有属性IE5.5 y设置滚动框的和滚动条箭头右下边缘的颜色
scrollbar-dark-shadow-colorIE特有属性IE5.5 y设置滚动条槽的颜色
scrollbar-base-colorIE特有属性IE5.5 y设置滚动条主要构成部分的颜色
scrollbar-track-colorIE特有属性IE5.5 y设置滚动条轨迹组成部分的颜色

 由于放不了图,各位还是自己直观试试吧,一下是我的总结:

 1、关于scrollbar-dark-shadow-color属性,我是在win7系统下测试Edge、IE10、9、8、7、5都没有显示什么,包括和其他属性组合,也没效果;

 2、这几个元素的从属关系:   scrollbar-face-color || scrollbar-arrow-color || scrollbar-shadow-color > scrollbar-track-color > scrollbar-highlight-color >scrollbar-base-color > scrollbar-3dlight-color;

 3、scrollbar-3dlight-color不论设置什么颜色,滚动条轨迹组成部分的颜色变为white色,滚动框和滚动条箭头的颜色变浅灰色 ;

 4、scroll-base-color是一个备用颜色 ,在其他属性不设置任何颜色时,滚动条颜色为此色,滚动框黑色,滚动轨迹为此色的浅色系,上下箭头变深接近黑色;

 5、在只设置scrollbar-track-color或者只设置scrollbar-face-color时,上下两个箭头的颜色会变得比默认颜色深;

 6、在只设置scrollbar-face-color时候,滚动条轨迹组成部分的颜色变为white色;

 7、在只设置scrollbar-arrow-color时候,滚动条轨迹组成部分的颜色变为white色,滚动框和滚动条箭头的颜色变浅灰色;

 8滚动条宽度无法设置,不能设置出弧度等形状 。 

(二)webkit内核的“衣裳”

拥有webkit内核的浏览器差不多都支持下面的css属性,下边的伪元素最好放在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 { } /* 定义右下角拖动块的样 */ 

eg:

html: 

<div class="main">
<div class="box">
<div class="box-ctn">Hello 。。。</div>
</div>
</div>

css: 

::-webkit-scrollbar { width: 10px; height: 10px; background: #f2f2f2; border: yellowgreen 1px solid; }
::-webkit-scrollbar-button { background-color:#267326; }
::-webkit-scrollbar-track { background:#9fdf9f; }
::-webkit-scrollbar-track-piece { background:url(http://pic.58pic.com/58pic/16/41/00/49F58PICmZg_1024.jpg); }
::-webkit-scrollbar-thumb { background:#339933; border-radius: 5px; }
::-webkit-scrollbar-corner { background:#ff0000; }
::-webkit-resizer { background:#ff0000; }
::-webkit-scrollbar-button:horizontal { background-color:#00a3cc; }
::-webkit-scrollbar-track:horizontal { background:#b3f0ff; }
::-webkit-scrollbar-thumb:vertical { background:#1ad1ff; border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: #267326; }
::-webkit-scrollbar-thumb:active { background: #267326; }
::-webkit-scrollbar-thumb:vertical:hover { background: #00a3cc; }
::-webkit-scrollbar-thumb:vertical:active { background: #00a3cc; }
::-webkit-scrollbar-button:decrement { border: 1px solid #00a3cc; }
::-webkit-scrollbar-button:increment { border: 1px solid #267326; }
/* ::-webkit-scrollbar-track:corner-present { display: none } */
/* ::-webkit-scrollbar-button:start { background-color: blue; }
::-webkit-scrollbar-button:end { background-color: green; } */ 
.main { 
padding: 20px;
border: blue 1px dashed;
}
.box {
width: 500px;
height: 200px;
overflow: scroll;
.box-ctn {
width: 3000px;
height: 1000px;

这些伪元素还可以搭配很多伪类,英文链接, 汉文翻译

:horizontal   主要应用于选择水平方向滚动条,可以单独设置水平方向的样式

:vertical     主要是应用于选择竖直方向滚动条,可以单独设置垂直方向的样式

:decrement   应用于按钮和内层轨道(track piece)。它用来指示按钮或者内层轨道是否会减小视窗的位置(比如,垂直滚动条的上面,水平滚动条的左边。)

:increment   用来指示按钮或内层轨道是否会增大视窗的位置(比如,垂直滚动条的下面和水平滚动条的右边。)

: start     应用于按钮和滑块。它用来定义对象是否放到滑块的前面。

:end   标识对象是否放到滑块的后面。

:double-button   该伪类可以用于按钮和内层轨道。用于判断一个按钮是不是放在滚动条同一端的一对按钮中的一个。对于内层轨道来说,它表示内层轨道是否紧靠一对按钮。

:single-button    类似于double-button伪类。对按钮来说,它用于判断一个按钮是否自己独立的在滚动条的一段。对内层轨道来说,它表示内层轨道是否紧靠一个single-button。

:no-button   用于内层轨道,表示内层轨道是否要滚动到滚动条的终端,比如,滚动条两端没有按钮的时候。

:corner-present    用于所有滚动条轨道,指示滚动条圆角是否显示。

:window-inactive    用于所有的滚动条轨道,指示应用滚动条的某个页面容器(元素)是否当前被激活。(在webkit最近的版本中,该伪类也可以用于::selection伪元素。webkit团队有计划扩展它并推动成为一个标准的伪类)

:hover   鼠标悬浮时的效果

:active   被激活时的样式

:enabled    元素的可用状态

:disabled   元素的禁用状态

根据伪类可以增加滚动条的样式以及一些动画,我最常用的是 :hover、 :active 、:window-inactive,根据需求大家可以多多尝试。

(三)Firefox的“衣裳”

这件可真是换不下来了

网上给了一些参考,但我试了试,没弄明白,下面是连接,有兴趣的看完会的,若不麻烦留言给个例子吧 

https://bbs.kafan.cn/thread-1529981-1-1.html 

参考文件: 

 小天地,大世界[https://www.lyblog.net]   https://www.lyblog.net/detail/314.html

 https://webkit.org/blog/363/styling-scrollbars/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/370089.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电脑调分辨率黑屏了怎么办_调显示器分辨率黑屏怎么办

调显示器分辨率黑屏怎么办调显示器分辨率黑屏解决方法&#xff1a;1&#xff0c;开机&#xff0c;当快要进入系统选项时&#xff0c;立即按f8键进入“高级模式”&#xff0c;因为系统选项界面显示的时间非常短&#xff0c;可以提早按f8键&#xff0c;否则错过时机就得重来。2&a…

什么是JNDI,SPI,CCI,LDAP和JCA?

JNDI代表Java命名和目录接口 。 它是用于提供对目录服务&#xff08;即带有对象的服务映射名称&#xff08;字符串&#xff09;&#xff0c;对远程对象或简单数据的引用&#xff09;的访问的API。 这就是所谓的 约束力 。 绑定集称为上下文 。 应用程序使用JNDI接口访问资源。…

android studio gradle 学习,学习Android Studio里的Gradle

一直听说Gradle很强大&#xff0c;只是偶尔用Android Studio创建Demo的时候看到他一次&#xff0c;今天抽个时间完整记录一下。1.gradle位置Android Studio项目创建好之后&#xff0c;默认有3个gradle文件&#xff0c;分别位于&#xff1a;/settings.gradle/build.gradle/app/b…

接口耗时打印并统计

1.可以利用Tomcat的access-log日志&#xff0c;让其打印出http请求的每次耗时。可以在 config/server.xml里Host标签下配置tomcat访问日志格式 <Valve className"org.apache.catalina.valves.AccessLogValve" directory"logs" prefix&quo…

js内存

js在定义变量时完成了内存的分配 js具有自动垃圾回收机制&#xff0c;垃圾回收器会每隔固定的一段时间就执行一次释放操作&#xff0c;即找出那些不再继续使用的值&#xff0c;释放其占用的内存 js中最常用的是通过标记清除的算法来找到哪些对象是不再继续使用的&#xff0c;因…

halcon 图像差分_Halcon编程-基于纹理的mara检测

表面瑕疵检测是机器视觉领域非常重要的一个应用。机器视觉是集光学、机电和计算机三个领域的一门不算新的技术。但目前表面瑕疵检测在学界主要是计算机专业或者控制专业瞄准图像处理方向在做&#xff0c;而视觉光学系统这一块主要是光学工程专业在做。很少有研究者把这三块都结…

Apache Camel入门

在先前的博文中&#xff0c;我们了解了企业集成模式&#xff08;EIP&#xff09;。 现在&#xff0c;在这篇文章中&#xff0c;我们将研究实现这些模式的Apache Camel框架。 关于骆驼&#xff1a; Apache Camel是一个开放源代码项目&#xff0c;已有将近5年的历史&#xff0c;…

css 写打印样式问题

&#xff08;1&#xff09;背景颜色打印不出来问题解决方法 background样式要加上 !important&#xff1b;color样式要加上 !important&#xff1b;-webkit-print-color-adjust: exact;然后记得浏览器打印设置里面要在“打印背景图形”前面打勾。 -webkit-print-color-adjust:…

android studio smssdk,SMSSDK for Android 配置

1.集成之前先要申请Mob的appkey与appsecret2.在Mob官网下载最新SDK&#xff0c;解压后会看到以下目录结构&#xff1a;SMSSDK下存放的是短信SDK的全部内容。3.在android studio中加入SMS的第三方库AS版本的SMSSDK目录下包含以下内容&#xff1a;MobCommons.jar&#xff1a;Mob …

linux后台不挂断运行 nohup命令

//后台常在 退出终端仍然运行 nohup python pyredis.py & nohup输出重定向到my.log nohup command > my.log 2>&1 &转载于:https://www.cnblogs.com/plxm/p/8136833.html

Ubuntu 16.04安装微信

微信没有出Linux的版本&#xff0c;但是可以通过以下方式解决&#xff1a; 1、使用网页版&#xff0c;除了没有公众号之后&#xff0c;一切都没问题&#xff0c;包括传文件等。 网页登录地址&#xff1a;https://wx.qq.com/ 2、使用第三方版本&#xff0c;只不过这个是桌面应用…

navision系统和sap区别_SAP那些事-实战篇-89-浅谈金税接口方案

以前金税接口这块一直是销售顾问在做&#xff0c;虽然和财务相关&#xff0c;也没有怎么关注。这次项目把金税接口分到了财务模块&#xff0c;结果遇到了一些问题&#xff0c;趁此机会把这块总结一下方案&#xff0c;供各位看官参考。方案1&#xff1a; 文本方案&#xff0c;这…

不变性的来龙去脉

因此&#xff0c;在我的第一篇文章中&#xff0c;我谈到了一些构建器模式&#xff0c;并提到了一个非常强大但却被忽视的概念&#xff1a;不变性。 什么是不可变类&#xff1f; 这只是一个其实例无法修改的类。 类属性的每个值都在其声明或其构造函数中设置&#xff0c;并在对…

JavaScript总结(3)

第3章 获取用户的输入 &#xff1c;script&#xff1e;10 intAprompt("请输入第一个数字","");11 intBprompt("请输入第二个数字",27);默认是2712 document.write("你输入的第一个数字是"intA);13 document.write("&#xff1c;…

css书写规范

在书写css样式的时候总是无意中就写乱了&#xff0c;无论是命名或者是样式的书写顺序&#xff0c;这里做一个总结&#xff0c;提醒自己在书写css的时候时刻注意&#xff0c;大家可以参考哈。 1. 样式属性顺序 单个样式规则下的属性在书写时&#xff0c;应按功能进行分组&…

android 协程,关于android:Kotlin协程实现原理SuspendCoroutineContext

明天咱们来聊聊Kotlin的协程Coroutine。如果你还没有接触过协程&#xff0c;举荐你先浏览这篇入门级文章What? 你还不晓得Kotlin Coroutine?如果你曾经接触过协程&#xff0c;置信你都有过以下几个疑难&#xff1a;协程到底是个什么货色&#xff1f;协程的suspend有什么作用&…

清空easyui checkbox选中项

$(#dg).datagrid(unselectAll);转载于:https://www.cnblogs.com/douhuan/p/7116744.html

python 编辑excel需要什么包_Python 中操作EXCEL表格的包

今天&#xff0c;马云爸爸又来贡献金句了&#xff0c;比王健林公公一亿一个小目标还高&#xff0c;“一个月挣一二十个亿很难受&#xff01;&#xff01;&#xff01;”&#xff0c;作为在传统企业主要为电商部门提供数据分析的数据分析师&#xff0c;体验太深刻了。双11前后&a…

用Java处理大文件

最近&#xff0c;我不得不处理一组包含逐笔历史汇率市场数据的文件&#xff0c;并很快意识到使用传统的InputStream都无法将它们读取到内存中&#xff0c;因为每个文件的大小都超过4 GB。 Emacs甚至无法打开它们。 在这种特殊情况下&#xff0c;我可以编写一个简单的bash脚本&…

java IO(一):File类

1.File类简介 File类位于java.io包中。它面向文件层次级别操作、查看文件&#xff0c;而字节流、字符流操作数据时显然比之更底层。 学习File类包括以下几个重点&#xff1a;文件路径、文件分隔符、创建文件(目录)、删除文件(目录)、查看文件内容(输出目录内文件)、判断文件(是…