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

汉堡菜单设置overflow-y: auto后仍无法滚动该如何解决?

问题原因

  • 样式优先级冲突:你在自定义CSS中给.menu__box设置了display: block,但HTML里给该元素加了Bootstrap的d-flex flex-column类,Bootstrap类优先级更高,该元素实际以flex布局渲染,未正确配置溢出规则的flex容器,内容超出时不会触发滚动
  • 高度计算异常:你给菜单设置了height: 100%,fixed定位元素使用百分比高度容易出现计算偏差,同时菜单配置的顶部边框、上下内边距会在默认盒模型下叠加到总高度上,导致菜单实际高度超过视口高度,超出部分直接被裁剪
  • 未限制最大高度:没有明确约束菜单的最大高度不超过可视窗口,即使设置了overflow-y: auto也无法触发滚动

修复方案

修改.menu__box的CSS规则即可,调整后的代码如下:

.menu__box {
  display: block;
  position: fixed;
  visibility: hidden;
  left: -100%;
  width: 300px;
  /* 替换原height:100%,限制最大高度为视口高度,加盒模型规则避免边框内边距撑大盒子 */
  max-height: 100vh;
  box-sizing: border-box;
  margin: 0;
  padding: 1rem 0;
  list-style: none;
  background-color: #fff;
  box-shadow: 1px 0px 6px rgba(0, 0, 0, 0.2);
  border-right: 1px solid black;
  border-top: 1px solid black;
  overflow-y: auto;
  transition-duration: 0.25s;
}

如果调整后还是不生效,可以直接删掉HTML中.menu__box元素上的d-flex flex-column类,避免flex布局和自定义样式冲突。

额外规范提示

你当前的HTML结构里<ul>标签下直接嵌套了<div>元素,不符合HTML语义规范,ul的直接子元素只能是<li>,建议把所有div都放到li内部,避免后续出现其他样式异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 11:36:03