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

Bootstrap页面h-100与box-shadow滚动失效问题求解

解决Bootstrap全屏阴影滚动中断问题

问题根源在于h-100类设置的是height: 100%,当页面内容超过视口高度时,body的高度仍被限制在视口高度,滚动后超出部分自然没有阴影覆盖;但去掉h-100后,body高度由内容决定,内容不足时无法撑满视口。

下面是两种可行的解决办法:

方法1:用min-height: 100vh替代h-100

放弃给html和body添加h-100类,改用自定义样式设置最小高度为视口高度,这样内容不足时页面撑满全屏,内容过多时body高度自动扩展,阴影能覆盖整个页面:

html, body {
  min-height: 100vh;
  margin: 0; /* 清除默认边距避免不必要的滚动条 */
}
body {
  box-shadow: inset 0 0 50px rgba(0, 0, 0, 0.5); /* 替换为你的阴影样式 */
}

这种方法完全遵循文档流,不会引发额外的布局冲突。

方法2:用固定伪元素实现全局阴影

如果需要保留h-100类(比如依赖Bootstrap的垂直布局逻辑),可以给body添加一个固定定位的伪元素,让阴影独立于body高度始终覆盖视口:

body::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  box-shadow: inset 0 0 50px rgba(0, 0, 0, 0.5); /* 替换为你的阴影样式 */
  pointer-events: none; /* 不干扰页面元素的点击交互 */
  z-index: -1; /* 将阴影放在内容下方,不遮挡页面内容 */
}
/* 保留h-100类实现初始全屏效果 */
html, body {
  height: 100%;
}

这种方法的优势是阴影始终固定在视口,滚动页面时阴影不会跟随内容移动,适合需要阴影固定效果的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 11:52:35