HOW - 在Windows浏览器中模拟MacOS的滚动条

目录

如果你想让 Windows 里的滚动条 模拟 macOS 的效果(细窄、圆角、隐藏默认轨道)。

可以使用以下几种方案:

一、原生 CSS 代码实现

模拟 macOS 滚动条

css 复制代码
/* 整个滚动条 */
::-webkit-scrollbar {
  width: 6px; /* 细窄滚动条 */
  height: 6px;
}

/* 滚动条的轨道(macOS 是透明的,所以这里隐藏掉) */
::-webkit-scrollbar-track {
  background: transparent; /* 透明背景 */
}

/* 滚动条滑块 */
::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.3); /* 半透明黑色 */
  border-radius: 10px; /* 圆角 */
}

/* 滑块悬停状态 */
::-webkit-scrollbar-thumb:hover {
  background: rgba(0, 0, 0, 0.5); /* 鼠标悬停时更明显 */
}

额外优化

macOS 的滚动条默认是 在滚动时才出现 ,你可以用 overflow: auto; + scrollbar-gutter 让它更接近 macOS:

css 复制代码
.custom-scroll {
  overflow-y: auto;
  scrollbar-gutter: stable; /* 让内容不跳动 */
}

如果你希望在 不滚动时隐藏滚动条,可以用:

css 复制代码
::-webkit-scrollbar {
  display: none;
}

⚠️ 注意 :这样会完全隐藏滚动条,用户无法手动拖动滚动条,建议仅在特殊场景下使用。

应用到某个特定容器

如果你不想全局生效,只想对某个 div 应用 macOS 风格:

css 复制代码
.macos-scrollbar {
  overflow-y: auto;
}

.macos-scrollbar::-webkit-scrollbar {
  width: 6px;
}

.macos-scrollbar::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.3);
  border-radius: 10px;
}

然后在 HTML 里:

html 复制代码
<div class="macos-scrollbar" style="height: 300px; overflow-y: auto;">
  这里是很多很多的内容...
</div>

这样,Windows 上的滚动条就会变得像 macOS 一样 细窄、圆润、隐蔽,更加美观。

二、Antd table中的滚动条场景

在使用一些组件库如 Antd 时,内部组件存在滚动场景时,如table组件,会发现滚动条没生效,这里需要设置:

css 复制代码
.ant-table-wrapper .ant-table {
    scrollbar-color: unset;
}

因为通过定位元素可以发现table自己设置了 scrollbar-color 属性。

三、使用第三方工具/扩展

对于 React 项目,可以通过以下 GitHub 工具实现滚动条的自定义(尤其是模拟 macOS 风格),以下是推荐的高质量工具:

  • react-custom-scrollbars

https://github.com/malte-wessel/react-custom-scrollbars

  • OverlayScrollbars

https://github.com/KingSora/OverlayScrollbars

  • react-perfect-scrollbar

https://github.com/mdbootstrap/perfect-scrollbar

  • smooth-scrollbar-react

https://github.com/nghiepdev/smooth-scrollbar-react

  • simplebar-react

https://github.com/grsmto/simplebar

相关推荐
鬼手点金4 小时前
nanoGPT/nanochat 能做出 DeepSeek/Qwen 这样的大模型吗?
服务器·前端·javascript·bug·openclaw
蛋蛋的就会顺顺的5 小时前
hot100 p0——栈,贪心算法,动态规划
java·前端·javascript·算法·leetcode·力扣
程序员Sunday5 小时前
TypeScript 的 any、unknown、never 有什么区别?
前端·面试·typescript
朱涛的自习室5 小时前
70 美金的 Beyond Compare,我让 Gemini 4 和 DeepSeek 造个开源免费版(Day 2)
android·前端·人工智能
码艺-Alimjan6 小时前
Tauri 源码备份 · 打包 & 解压 总结,源码收集之路
前端·javascript·vue.js
小马不起床6 小时前
零基础玩转 FastAPI_11:前端后台管理页面
前端·状态模式·fastapi
子非鱼a7 小时前
【文件上传】一个普普通通的edu16
前端
又見山7 小时前
Obsidian 跨平台同步实测:Nutstore Sync 在 Windows、Mac、Linux、iOS、Android 全平台综合测评
windows·macos·obsidian·obsidian同步·obsidian教程·obsidian入门·obsidian笔记库搭建
美狐美颜SDK开放平台7 小时前
直播APP如何实现美白滤镜功能?视频美颜SDK技术开发方案详解
前端·数据库·人工智能·音视频·美颜sdk·直播美颜sdk·视频美颜sdk
pride.li8 小时前
第03章 Python 教程-基础语法:注释与变量
服务器·前端·后端·python·算法·计算机视觉