在开始说滚动条之前,先介绍下当前主流的浏览器和内核。
Blink 内核
Blink 内核是从 WebKit 内核分支而来,继承并优化了许多特性。它采用了多进程架构,每个标签页、插件等都可以在独立的进程中运行,这使得浏览器在处理多个复杂页面时,一个页面的崩溃或卡顿不会影响其他页面,大大提高了浏览器的整体性能和稳定性。
代表浏览器:Google Chrome、Microsoft Edge(新版)、Opera、Brave 等。
Gecko 内核
Gecko 内核以遵循网页标准而著称,它积极支持 W3C 等组织制定的各种标准,对于开发者来说,使用标准的 HTML、CSS 和 JavaScript 代码在 Firefox 上能得到很好的兼容和呈现。
代表浏览器:Mozilla Firefox。
WebKit 内核
webkit内核在资源占用方面相对较少,启动速度和页面加载速度较快,尤其适合在移动设备等资源有限的环境中使用。
代表浏览器:Safari(苹果公司的浏览器)、一些移动端浏览器(如 iOS 系统自带浏览器)。
正文开始
<div class="box"><div class="demo1">AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</div></div><style>.box {width: 400px;margin: 200px auto;border: 1px solid;}.demo1 {overflow: auto;}</style>
先看下默认效果。这里使用的edge浏览器
修改滚动条样式
/*定义滚动条整体样式 WebKit 内核浏览器中,滚动条样式的设置是基于一个层级结构的::-webkit-scrollbar 是整个滚动条的顶级选择器,它代表滚动条的整体部分,而 ::-webkit-scrollbar-track 和 ::-webkit-scrollbar-thumb 是滚动条的子部分。 不定义滚动条整体样式的话,定义滚动条轨道,圆角等其他样式的时候就不生效了*/::-webkit-scrollbar {width: 0px; }/* 定义 轨道背景颜色 */::-webkit-scrollbar-track {background: #8d8c8c; }::-webkit-scrollbar-thumb {background: #da3d3d; /* 滑块背景颜色 */border-radius: 0px; /* 滑块圆角 */}/* 定义滚动条滑块悬停时的样式 */::-webkit-scrollbar-thumb:hover {background: #1fbb46; }
效果
这里在edge浏览器中样式都生效了,但是在火狐浏览器中打开的时候,样式没有生效。
在火狐浏览器中,主要通过scrollbar-width属性和scrollbar-color来控制滚动条样式的
.demo1 {scrollbar-width: 20px; /* 可选值:auto | thin | none */scrollbar-color: red yellow; /* 第一个值是滑块颜色,第二个值是轨道颜色 */}
效果
使用@supports来判断当前浏览器的内核
/* 检测 WebKit/Blink 内核 */@supports (-webkit-appearance: none) {/* 这里放置仅在 WebKit/Blink 内核浏览器中生效的样式 */.demo1 {background-color: lightblue;}}@supports (-moz-appearance: none) {/* 这里放置仅在 Gecko 内核浏览器中生效的样式 */.demo1 {background-color: lightgreen;}}
效果
end
如有误欢迎指正