You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决hover显示div滚动条时内容发生偏移的问题

解决方案

方案1:使用原生CSS scrollbar-gutter 属性(推荐)

这是CSS标准专门为解决滚动条出现挤压内容问题推出的属性,代码量最小,无hack,兼容性覆盖绝大多数主流浏览器:

div {
  width: 50%;
  margin: 0 auto;
  overflow-y: hidden;
  /* 预留给滚动条固定宽度的位置,内容宽度不会随滚动条显隐变化 */
  scrollbar-gutter: stable;
}

div:hover {
  overflow-y: auto;
}

方案2:自定义悬浮滚动条(无内容挤压、可自定义样式)

如果需要滚动条完全不占用内容宽度,可通过自定义滚动条实现,滚动条会悬浮在内容上层,不会触发内容偏移:

div {
  width: 50%;
  margin: 0 auto;
  overflow-y: hidden;
}

div:hover {
  overflow-y: auto;
}

/* 自定义滚动条样式,适配webkit内核浏览器(Chrome、Edge、Safari等,覆盖95%以上用户) */
div::-webkit-scrollbar {
  width: 8px;
}
div::-webkit-scrollbar-track {
  background: transparent;
}
div::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 4px;
}
/* hover时才显示滚动条滑块 */
div:hover::-webkit-scrollbar-thumb {
  background: #c1c1c1;
}
div:hover::-webkit-scrollbar-thumb:hover {
  background: #a1a1a1;
}

原代码问题说明

你代码中写的padding-left: calc(100vw - 100%)是用来解决页面全局滚动条出现时整页内容左右偏移的方案,不适用于容器内部的滚动条场景,因此无法解决你遇到的问题。

内容的提问来源于stack exchange,提问作者Simple

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 10:15:03