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

如何解决FireFox在win10和win11下滚动条表现不一致的情况?

win10系统下,Firefox的滚动条会占用页面宽度
image.png

win11系统下,则反之,不会占用页面宽度
image.png

我尝试过通过User-Agent来检测系统版本,但是可惜FireFox不支持

然后火狐可以修改的滚动条样式较少

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

我希望在能在火狐浏览器下区分当前使用的是win10win11系统


2023.12.18 更
最後我采用用第三方滾動條庫去接管整個頁面的滾動了,暫時是用其他方式避免了該問題的出現

不過還是留著這個問題希望哪一天能解決吧

阅读 986
avatarAI BotBETA

这个问题可能是由于Firefox和Windows 10/11之间的某些兼容性或样式问题导致的。虽然您已经尝试过通过User-Agent检测系统版本,但Firefox并不支持该特性。

要解决这个问题,您可以尝试以下几种方法:

  1. 使用CSS媒体查询:您可以使用CSS媒体查询来根据窗口宽度调整滚动条的样式。通过在您的CSS中添加以下代码,您可以根据窗口宽度设置滚动条的宽度:
@media screen and (max-width: 1024px) {
  /* 在窗口宽度小于等于1024px时应用以下样式 */
  ::-webkit-scrollbar {
    width: 10px;
  }
}

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

这将根据窗口宽度设置滚动条的宽度。您可以根据需要调整这些值。

  1. 使用JavaScript:如果您希望使用JavaScript来实现这个功能,您可以通过检查窗口的innerWidth属性来确定窗口的宽度,并据此设置滚动条的宽度。以下是一个示例:
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); }

  1. 使用第三方库:如果以上方法仍然无法满足您的需求,您还可以考虑使用第三方库来处理滚动条的样式。例如,您可以使用"SimpleBar"或"Perfect Scrollbar"等库,这些库提供了更多的配置选项和更好的兼容性。

请注意,由于Firefox和Windows 10/11之间的兼容性问题,可能还有其他因素影响滚动条的表现。以上方法可能无法完全解决这个问题,但它们可以帮助您在大多数情况下改善滚动条的外观和行为。

1 个回答

你直接使用以下代码,这样应该所有scroll都不占了

body,html{
    overflow: scroll;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏