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

网站底部出现额外空白:100vh高度区块为何超出视口?

问题根源与解决办法

问题出在CSS的盒子模型上:默认情况下box-sizing的值是content-box,这意味着你给元素设置的width和height只包含内容区域,padding和border会额外增加元素的总尺寸。

你给#second设置了height:100vh,同时又加了padding-top:200px,所以这个区块的实际总高度是100vh + 200px,直接超出了视口高度,自然出现滚动条。

方案一:使用border-box调整盒子模型

给#second添加box-sizing: border-box,这样padding和border会被包含在你设置的width和height范围内,总高度就能保持100vh:

#second {
  box-sizing: border-box; /* 新增这一行 */
  color: #fff;
  padding-right: 10vw;
  padding-top: 200px;
  background-color: black;
  width: 100%;
  height: 100vh;
}

.elem {
  width: 100%;
  padding: 3.5vw 3vw;
  border-top: 1px solid #888;
}

.elem h1 {
  text-transform: uppercase;
  font-size: 7.6vw;
  opacity: 0.7;
}

.elemlast {
  border-bottom: 1px solid #888;
}

方案二:将padding转移到内部元素

如果不想修改盒子模型,可以把padding-top:200px从#second移到第一个.elem上,避免撑开父元素高度:

#second {
  color: #fff;
  padding-right: 10vw;
  background-color: black;
  width: 100%;
  height: 100vh;
}

.elem:first-child {
  padding-top: calc(3.5vw + 200px); /* 保留原padding-top的同时加上200px */
}

.elem {
  width: 100%;
  padding: 3.5vw 3vw;
  border-top: 1px solid #888;
}

.elem h1 {
  text-transform: uppercase;
  font-size: 7.6vw;
  opacity: 0.7;
}

.elemlast {
  border-bottom: 1px solid #888;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 04:17:07