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

CSS中如何让grid容器占满header和footer外的剩余视口空间

不需要使用absolute定位,用纵向flex布局就能实现需求,不会出现脱离文档流的适配问题,只需修改几处CSS即可。

问题原因

你之前的代码中,body虽然设置了100vh,但它的直接子元素.container没有继承高度,也没有配置纵向布局规则,所以header、main、footer都是默认按块级元素堆叠,高度各自由内容撑开,自然没法实现中间区域自适应、footer贴底的效果。

具体修改代码

  • 给外层容器.container补充高度和弹性布局规则
.container {
  max-width: 1400px;
  margin: 0 auto;
  /* 新增代码 */
  height: 100%;
  display: flex;
  flex-direction: column;
}
  • 给main标签补充规则,让它自动占据header和footer之外的剩余高度
main {
  flex: 1;
  display: grid;
}

这里加display: grid是为了让你原有.grid-container设置的align-self: center生效,实现内容在中间区域垂直居中的效果。

  • 给footer设置固定高度50px,按需可加垂直居中规则
footer {
  padding: 0 40px;
  /* 新增代码 */
  height: 50px;
  line-height: 50px; /* 可选,让footer文字垂直居中 */
}

修改完成后页面总高度固定为100vh,header固定80px在顶部,footer固定50px在底部,中间main区域完全占满剩余空间,内部的grid容器保持原有垂直居中的布局效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:54:03