通过css伪元素可实现类似macOS的细长半透明滚动条,仅webkit浏览器支持,核心为设置::-webkit-scrollbar宽度、::-webkit-scrollbar-thumb透明色及悬停效果,应用于特定容器时需限定选择器,保持简洁不干扰布局。

想要在网页中实现类似 macOS 系统中的滚动条样式,可以通过 CSS 自定义滚动条的外观。macos 的滚动条特点是:细长、半透明、鼠标悬停时才明显显示,且不占用额外布局空间。以下是使用 html 和 CSS 实现仿 Mac 风格滚动条的方法。
1. 使用 Webkit 滚动条伪元素
目前只有基于 WebKit 内核的浏览器(如 chrome、edge、safari)支持自定义滚动条样式。我们通过以下伪元素来控制滚动条的各个部分:
- ::-webkit-scrollbar:定义滚动条整体样式
- ::-webkit-scrollbar-thumb:定义滑块(可拖动部分)
- ::-webkit-scrollbar-track:定义轨道背景(可选)
- ::-webkit-scrollbar-corner:多个滚动条交汇处的角落样式
2. 基础 CSS 实现代码
将以下样式添加到你的 CSS 文件中,即可为整个页面或指定容器设置仿 Mac 滚动条:
立即学习“前端免费学习笔记(深入)”;
/* 整体滚动条宽度 */ ::-webkit-scrollbar { width: 8px; /* 垂直滚动条宽度 */ height: 8px; /* 水平滚动条高度(如果需要) */ } <p>/<em> 滚动条轨道 </em>/ ::-webkit-scrollbar-track { background: transparent; }</p><p>/<em> 滚动条滑块 </em>/ ::-webkit-scrollbar-thumb { background-color: rgba(0, 0, 0, 0.2); border-radius: 4px; border: 2px solid transparent; background-clip: content-box; }</p><p>/<em> 鼠标悬停时滑块样式 </em>/ ::-webkit-scrollbar-thumb:hover { background-color: rgba(0, 0, 0, 0.4); }</p><p>/<em> 可选:角落样式 </em>/ ::-webkit-scrollbar-corner { background: transparent; }</p>
3. 应用于特定容器
如果你只想让某个 div 容器拥有仿 Mac 滚动条,而不是整个页面,可以将上述伪元素选择器作用于该容器:
立即学习“前端免费学习笔记(深入)”;
.custom-scroll { max-height: 400px; overflow-y: auto; overflow-x: hidden; } <p>.custom-scroll::-webkit-scrollbar { width: 6px; }</p><p>.custom-scroll::-webkit-scrollbar-track { background: transparent; }</p><p>.custom-scroll::-webkit-scrollbar-thumb { background-color: rgba(0, 0, 0, 0.15); border-radius: 3px; }</p><p>.custom-scroll::-webkit-scrollbar-thumb:hover { background-color: rgba(0, 0, 0, 0.3); }</p>
HTML 结构示例:
<div class="custom-scroll"> <p>这里是一些很长的内容...</p> </div>
4. 兼容性与注意事项
这种样式仅在 WebKit 浏览器中生效,firefox 和 IE 不支持。若需更广泛的兼容性,可考虑使用 javaScript 滚动库(如 SimpleBar、Perfect Scrollbar),但原生 CSS 方案更轻量、性能更好。
Mac 风格的核心是“简洁、不干扰”,因此建议保持滚动条窄、透明,并只在交互时增强可见性。
基本上就这些,不需要复杂脚本,用几行 CSS 就能模拟出接近 macOS 的视觉体验。关键在于细节控制和透明度的合理使用。