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

SVG与section布局出现多余空白?已设margin和padding为0仍无法消除

空白区域成因

  • 绝对定位元素脱离文档流:.hills设置了position: absolute,但父容器.first未设置position: relative,导致该SVG定位参照错误,同时绝对定位元素不参与父容器高度计算,.first的高度仅由内部<h1>元素的默认边距和内容高度撑开,和SVG高度不匹配,产生多余空白。
  • 选择器匹配错误:你使用<img>标签引入SVG,却写了.underhillcontainer > svg的规则,无法匹配到img元素。img作为行内替换元素默认按基线对齐,下方会自带几像素的间隙,导致第二个section顶部出现空白。
  • 标题默认边距未清除:你没有给.title类添加margin: 0规则,h1标签自带的上下默认margin会额外撑开.first容器的高度,加大空白区域。

修复方案

按以下内容调整你的CSS代码即可:

/* 清除h1默认边距 */
.title {
  margin: 0;
}
.first {
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0;
  padding: 0;
  /* 新增:作为子元素绝对定位的参照 */
  position: relative;
  /* 新增:设置为你的hills.svg的实际高度,保证父容器高度和SVG匹配 */
  min-height: 300px;
}
.hills {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: auto;
  z-index: -1;
  margin: 0;
  padding: 0;
  /* 新增:消除img默认下方间隙 */
  display: block;
}
.second {
  overflow: hidden;
  margin: 0;
  padding: 0;
}
.under-hills {
  position: relative;
  margin: 0;
  padding: 0;
  width: 100%;
  z-index: -1;
  /* 新增:消除img默认下方间隙 */
  display: block;
}

如果不需要将h1悬浮在SVG上方,可以直接去掉.hills的position: absolute规则,让SVG正常参与父容器高度计算,不需要额外设置.first的min-height。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 07:06:08