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

从ReactJS切换到NextJS后页面出现两个垂直滚动条该如何解决?

双滚动条问题原因
  • NextJS 框架内置了根节点默认样式:Pages Router 下的 #__next 容器、App Router 下根 layout 自带的顶层布局容器,默认都会设置 min-height: 100vh 等高相关属性
  • 你将 overflow-y: scroll 配置全局挂载到 html 或 body 节点后,上述 Next 内置容器如果也继承或者被匹配到溢出滚动规则,两个层级的节点同时触发垂直滚动条,就会出现双滚动条的表现
修复方案
  1. 调整全局CSS的配置范围,仅给html节点加你需要的滚动条规则,同时重置相关节点的溢出属性:
/* 仅给html根节点加滚动配置,实现你要的无布局偏移效果 */
html {
  overflow-y: scroll;
  overflow-x: hidden;
}

body {
  margin: 0;
  overflow-x: hidden;
  /* 清除body的滚动触发能力 */
  overflow-y: auto;
}

/* Pages Router 项目新增这条规则 */
#__next {
  min-height: 100vh;
  overflow: visible;
}

/* App Router 项目如果有自定义顶层包裹容器,给对应容器加即可 */
.your-root-wrapper {
  min-height: 100vh;
  overflow: visible;
}
  1. 如果修改后仍有异常,可以打开浏览器开发者工具的元素面板,逐层检查DOM节点的overflow相关属性,删掉除html节点外其他所有节点的overflow-y: scroll配置即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 11:30:01