Firefox滚动条在Win10和Win11下表现不一致问题?

文章目录

前言

最近在写页面的时候发现一个非常有意思的事。Firefox滚动条在Win10和Win11下表现居然不一致。在网上几经查找资料, 终于找到原因所在。总结成下面的文章,加深印象也防止下次遇到。

总结

参考文章:
Firefox滚动条在Win10和Win11下表现不一致问题?

如下面

win10系统下,Firefox的滚动条会占用页面宽度,是一种比较粗的滚动条,很原始

win11系统下,则反之,不会占用页面宽度,是一种细小的滚动条,鼠标放在上面会有一个focus 效果(放大),比较接近现在

根本原因:查了一下出处,疑似是 Firefox 97 版本的一次针对 win11 的更新导致

上面说的还只是滚动条问题,仔细研究会发现,同样的Firefox浏览器 都是最新版在win10 和win11 上样式居然不一样,也是很神奇了。

解决方法

1.使用CSS媒体查询

可以使用CSS媒体查询来根据窗口宽度调整滚动条的样式,例如

javascript 复制代码
@media screen and (max-width: 1024px) {
  /* 在窗口宽度小于等于1024px时应用以下样式 */
  ::-webkit-scrollbar {
    width: 10px;
  }
}

@media screen and (min-width: 1025px) {
  /* 在窗口宽度大于1024px时应用以下样式 */
  ::-webkit-scrollbar {
    width: 8px;
  }
}

2.使用JavaScript

使用JavaScript来实现这个功能,您可以通过检查窗口的innerWidth属性来确定窗口的宽度,并据此设置滚动条的宽度,例如

javascript 复制代码
window.addEventListener('resize', function() {
  var scrollbarWidth = window.innerWidth > 1024 ? 8 : 10;
  document.documentElement.style.setProperty('--scrollbar-width', scrollbarWidth + 'px');
});

然后在CSS中,可以使用var()函数来引用这个变量,例如:::-webkit-scrollbar { width: var(--scrollbar-width); }

3.使用第三方库

还可以考虑使用第三方库来处理滚动条的样式。例如,您可以使用"SimpleBar"或"Perfect Scrollbar"等库,这些库提供了更多的配置选项和更好的兼容性。

4.直接使用以下代码

直接使用以下代码,这样应该所有scroll都不占了,这种方法还没有试过,可以尝试。

javascript 复制代码
body,html{
    overflow: scroll;
}
相关推荐
gis开发之家9 分钟前
《Vue3 从入门到大神50篇》Vue3 源码详解(二十):生命周期钩子源码解析 —— onMounted / onUpdated 如何实现?
前端·javascript·前端框架·vue3·vue3源码
Narrastory13 分钟前
我用 Claude Code 写代码不到 2 小时,却花了 3 天做完这个软件—Vibe Coding 的正确姿势,是设计不是生成
前端·人工智能·github
Enaium14 分钟前
我实现了KMP的SDL绑定并编写了高性能软光追
前端·kotlin
古夕18 分钟前
本地正常线上白屏:一次路由切换后刷新恢复问题的排查与修复
前端·ai编程
栀鸢ouo25 分钟前
解决Element Plus表格展开行横向溢出、滚动截断问题(项目实战方案)
前端·vue.js
用户390513321928829 分钟前
写了5年JS,才发现这10个方法能少写一半代码
前端
平凡的阿泽29 分钟前
我用TRAE Work手搓了一个「谁是卧底」小游戏
前端·javascript
一心只读圣贤书38 分钟前
AI 辅助前端视觉回归治理:从截图基线到变更解释
前端·人工智能
嘟嘟071740 分钟前
用单例模式管理弹窗:从一段原生 JS 理解 Singlet
前端·javascript·代码规范
一心只读圣贤书43 分钟前
AI 辅助前端图片资源治理:从懒加载到多端适配
前端·人工智能