本文将会告诉你如何用CSS修改/美化浏览器页面上出现的滚动条。改变它们的颜色,调整它们的外形,适配你对页面UI设计。我们首先将会看看谷歌(Webkit)浏览器提供了哪些CSS属性,最后,还将介绍如何用jQuery支持其它类型的浏览器。

各种浏览器对CSS滚动条的支持情况

这 里说的Webkit浏览器包括谷歌浏览器,苹果公司的Safari浏览器,以及最新的Opera浏览器。这些浏览器加起来占有超过半数的桌面浏览 器市场份额。对于移动端浏览器,基本上是谷歌浏览器和Safari浏览器的天下。唯一的遗憾是火狐浏览器,至今没有对CSS滚动条属性做任何的改进。至于 IE浏览器,我们期待吧。

鉴于目前浏览器市场的格局,我们很有信心相信CSS滚动条美化功能会有很好的很光明的前景。

滚动条会出现在哪些地方

在真正开始对CSS滚动条的讲解之前,先让我们做一个简单的演示页面;一个含有滚动条的页面。滚动条通常会出现在这些地方:

  • 浏览器边框,当页面内容超过浏览器视窗大小
  • textarea,内容过多时
  • iframe
  • div或任何block元素,当它们的被设定成overflow属性时。

对于我们的演示页面,使用的HTML代码是下面这些:

<div class="container"><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur rhoncus tortor eget orci fringilla non semper magna aliquet. Aliquam convallis elit sem. Proin fringilla fermentum pretium. Phasellus id nisl eu eros convallis eleifend. In hac habitasse platea dictumst. In at felis massa. Maecenas vitae quam non elit porta pellentesque ac in erat. Nullam a ante felis, ullamcorper suscipit felis. Maecenas sit amet nisl mattis ipsum ullamcorper aliquam vitae sed sapien. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p><p>Sed sed tellus dolor, non lobortis felis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. In eget nisl viverra risus feugiat vulputate tempus et leo. Nam metus nibh, tristique non sodales non, interdum et neque. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed imperdiet aliquet vestibulum. Curabitur viverra tortor augue, a aliquet tellus. Vivamus eu felis vel lorem tincidunt imperdiet. Fusce iaculis luctus convallis. Proin adipiscing malesuada enim, et feugiat tortor sagittis eu. Cras convallis felis eu leo tempus et fermentum urna accumsan. In quis metus at metus ultricies fringilla. Maecenas sed lacus aliquam nibh semper dignissim et quis est.</p><p>Praesent sodales, sapien sit amet congue egestas, sem ligula ornare massa, vitae suscipit felis ligula quis velit. Phasellus lectus massa, sodales ac vulputate ac, pharetra quis lacus. Morbi tempus pretium nisi sed pretium. Pellentesque dictum volutpat vulputate. Fusce dapibus sagittis felis, ut consequat nisi posuere id. Cras elit orci, vehicula in sagittis a, faucibus vitae dui. Nunc non lorem in metus adipiscing adipiscing non a sapien. Sed dictum ultrices nibh in tristique. Nulla dapibus laoreet tincidunt. Sed accumsan erat quis mi luctus porta.</p><p>Sed mollis justo enim, ut pharetra nunc. Fusce vehicula viverra magna, et fringilla lectus porta quis. Donec eu fermentum mi. Donec congue pellentesque iaculis. Phasellus est leo, cursus eget consectetur in, tristique sit amet tortor. Cras eleifend felis sit amet eros vehicula aliquet. Pellentesque fringilla metus in libero luctus eu condimentum nulla pretium. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam consequat sodales lorem, nec dignissim turpis pharetra et. Nullam commodo hendrerit elementum. Donec porta faucibus ligula non blandit. In ultrices vehicula pretium.</p><p>Sed ac sagittis sapien. Curabitur varius pellentesque nunc eget molestie. Vivamus in massa arcu, ut auctor tellus. Aliquam convallis lobortis magna, ut posuere odio euismod ac. Vestibulum in enim vitae metus vulputate interdum. Mauris a risus auctor nunc fermentum dapibus. Proin iaculis, nunc ut viverra varius, augue augue porta libero, id viverra nisl elit in mauris. Aenean quis risus ante. Donec bibendum erat a sem vestibulum eu aliquet lectus tincidunt. Vivamus imperdiet congue leo, non ultricies urna sodales sed. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla vitae rhoncus dui. Nunc in nisi in ante imperdiet tincidunt sagittis eu ipsum. Aenean orci justo, faucibus placerat tincidunt vitae, vehicula at libero.</p></div>

其实只有一个div元素,但因为有太多的内容而出现滚动条。我们给它最初的CSS样式是固定高度和宽度,使它出现横向和纵向滚动条,CSS代码是这样的:

  .container {width: 400px;height: 300px;background-color: #DCDCDC;overflow: scroll; /* 让它显示滚动条 */}

它的原始显示效果大概是这个样子:firefox1

用CSS美化滚动条

很多年前谷歌浏览器就已经开始支持对滚动条的CSS美化。这些Webkit浏览器专属的CSS属性需要使用-webkit-浏览器引擎前缀,我们在这里将只会使用一些基本的CSS滚动条属性,在代码里会增加一些必要的解释说明。

   ::-webkit-scrollbar {width: 15px;} /* 这是针对缺省样式 (必须的) */

当CSS中出现伪元素样式时,Webkit引擎将会关闭它的缺省滚动条样式输出,只使用CSS里提供的样式信息。 – Surfin’ Safari

这里是其它一些伪元素样式:

       ::-webkit-scrollbar-track {background-color: #b46868;} /* 滚动条的滑轨背景颜色 */::-webkit-scrollbar-thumb {background-color: rgba(0, 0, 0, 0.2); } /* 滑块颜色 */::-webkit-scrollbar-button {background-color: #7c2929;} /* 滑轨两头的监听按钮颜色 */::-webkit-scrollbar-corner {background-color: black;} /* 横向滚动条和纵向滚动条相交处尖角的颜色 */

如果你对这里为什么会使用双引号标注伪元素,请看《理解:Before和:After伪元素》里的讲解。

加上了这些CSS属性,你将会看到下面的效果(再次提醒:你需要使用Webkit浏览器,比如谷歌浏览器才能看到效果)。chrome1

IE浏览器有自己的滚动条CSS属性!

你可能会感到意外,IE浏览器是最早的一个支持滚动条外观CSS自定义的浏览器。早在IE5.5版时就支持,但仅支持颜色的改变。

这些属性今天仍然是延用的;看看这IE9里的演示效果:

  body {scrollbar-face-color: #b46868;}

将会是下面这个样子:ie1

兼容支持非Webkit浏览器

谷歌浏览器的用户是最幸福的。但我们也不能放弃火狐浏览器和IE浏览器用户。对于这些浏览器,有一个非常有效的补救方案,就是使用javascript插件。网上有不少人推荐一个由Kelvin Luck开发的一个jQuery插件:jScrollPane。但也有人评论这个插件是“PITA”,我翻了一下字典,发现“PITA”中文意思是“让人蛋疼”。经过试用,感到它的确是让人蛋疼。不推荐使用它。我发现了另外一个插件malihu-custom-scrollbar-plugin,感觉相当不错,它的用法是:

<link rel="stylesheet" href="js/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.min.css">
<!-- latest jQuery direct from google's CDN -->
<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="js/jquery-migrate-1.2.1.min.js"></script><script src="js/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.concat.min.js"></script><script>
if (!$.browser.webkit) {$.mCustomScrollbar.defaults.scrollButtons.enable=true; //enable scrolling buttons by default$.mCustomScrollbar.defaults.axis="yx"; //enable 2 axis scrollbars by default$(".container").mCustomScrollbar({theme:"dark"});
}
</script>

火狐浏览器中的效果截图:firefox_jscrollpane

总结

已经有很多网站都使用了这些滚动条的CSS美化技巧,特别是谷歌的一些应用和网站上,比如Gmail和Google+。相信很快火狐浏览器和IE浏览器也会提供自己的解决方案。如果你在使用滚动条的CSS美化上有非常漂亮的例子,请留在评论里供大家欣赏,谢谢。

原文:http://www.webhek.com/scrollbar

justcode.ikeepstudying.com

用CSS美化你的滚动条相关推荐

  1. 移动端屏幕适配和css美化浏览器自带的滚动条

    一.css美化浏览器自带的滚动条: 浏览器自带的滚动条显示不太美观,我们可以调css样式来美化一下.了解以下浏览器(webkit内核)滚动条自带伪类样式: ::-webkit-scrollbar:针对 ...

  2. 纯css美化滚动条样式

    https://www.emperinter.info/2020/09/20/scrollbar-in-browser/ 自己完善自己博客再Ipad等移动端的菜单时选用了左右滑动的菜单模式!当然就会使 ...

  3. css改火狐滚动条样式_纯css美化滚动条样式

    知乎的编辑器对于复制转发文章来说特别不友好(直接复制后代码乱码,字体变化,表格数据丢失),不太想过多重复编辑,只会编辑转发部分到这上面来,如感觉还不错,请跳转到:https://www.emperin ...

  4. 网页端 vue项目 css美化右侧 Y轴滚动条

    这是写的美化y轴滚动条的dome 变为自己的需要替换数据哦 美化后的样式效果: 美化样式关键代码: // .list_data_box 是滚动条盒子/* 滚动条整体部分 */.list_data_bo ...

  5. Html,Css美化滚动条(附上图例)

    有没有觉得html默认的滚动条样式丑到爆炸,但是自己又不会修改,下面让我来手把手教你如何更改滚动条的而样式,代码简单易懂,开箱即用! 我就是cv工程师!!! 来看看一般的滚动条 妈呀是不是感觉很丑,现 ...

  6. jQuery插件:Tiny Scrollbar滚动条插件(滚动条美化、默认滚动条)

    Tiny Scrollbar是基于jQuery的滚动条插件, 风格简洁, 可自定义样式, 体积较小. 插件特点: 支持iPhone, iPad, Android 新版1.8,可以在移动设备上滚动内容 ...

  7. html5搜索框美化,CSS美化的漂亮搜索框

    CSS美化的漂亮搜索框 我要搜索 搜索 var $ = function(id){return document.getElementById(id);} var formSubmit = funct ...

  8. 10使用CSS美化页面

    技术交流QQ群:1027579432,欢迎你的加入! 本教程来源于B站杨仕航Django2.0开发视频教程,如需转载,必须注明来源! 1.页面设计 2.导航栏设计 打开blog文件夹的urls.py文 ...

  9. 在HTML中使用CSS美化网页的三种方法

    在HTML中使用CSS美化网页的三种方法 CSS是Cascading Style Sheets(级联样式表)的缩写,CSS是一种样式表语言,用于为HTML文档定义布局.例如,CSS涉及字体.颜色.边距 ...

最新文章

  1. 如何查询电脑的文件系统的分类是哪一种?
  2. 将Apache添加为Linux的服务 实现自启动
  3. 云原生应用程序运行时 Kyma 的主要特性介绍
  4. 2021考研报考人数377万,读研VS工作,哪个更值得?
  5. URAL 2045 Richness of words (回文子串,贪心)
  6. mysql gtid ha_MySQl新特性 GTID
  7. Object.keys方法拿到对象的key值
  8. oracle授权只读用户,Oracle创建只读用户(账号)的方法
  9. 【英语学习】【Level 07】U04 Rest and Relaxation L3 The finest hotel
  10. 我的内核学习笔记1:字符设备完善
  11. 【iOS】Image图片属性之Render as Template Image
  12. Linux下Tomcat指定JDK和设置内存大小
  13. java类Writer和类Reader小结
  14. Oracle在SQL语句中对时间操作、运算
  15. PHP第三方易宝支付对接
  16. 张大哥笔记-有哪些可傻瓜式建站的开源网站程序
  17. Cognitive Surplus 认知盈余
  18. 大数据第一季--Hadoop(day4)-徐培成-专题视频课程
  19. Java数字转换大写
  20. 如何生成微信小程序二维码(uniapp开发)

热门文章

  1. 判断整除(信息学奥赛一本通-T1195)
  2. 连续出现的字符(信息学奥赛一本通-T1148)
  3. 奇偶数判断(信息学奥赛一本通-T1041)
  4. 14 CO配置-控制-内部订单-维护定单编号范围
  5. 如何用excel筛选相似内容_excel如何筛选出相同内容,excel怎么用公式筛选
  6. python规定浮点数类型可以不带小数部分吗_Python标准数据类型-数字
  7. MobileNetV1
  8. php修改特定位bit的值,解读天书 - 漏洞利用中级技巧的分析
  9. Docker制作镜像、启动容器、查看版本、修改源、安装工具
  10. Linux系统查看内存的几个小命令