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

flex布局下给body设置align-items:center为何垂直居中不生效

问题根因
  • 百分比高度的计算基准是父元素的明确高度值,你给body设置了height: 100%,但body的上级元素<html>没有设置高度,默认仅由内容撑开高度,此时body的实际高度和内部170px的正方形高度完全一致,align-items: center的垂直居中效果自然无法体现。
解决方案

有两种常用的修复方式:

方式1:给html元素也设置100%高度

修改后的CSS代码如下:

html {
  height: 100%;
}
body {
    display: flex;
    background-color: #333;
    height: 100%;
    margin: 0;
    padding: 0;
    align-items: center;
    justify-content: center;
}

div {
    width: 170px;
    height: 170px;
    background-color: #0073d9;
}

方式2:直接使用视口高度单位

不用修改html元素,直接把body的height: 100%改为height: 100vh即可,vh是相对于浏览器视口高度的单位,100vh就等于当前视口的完整高度:

body {
    display: flex;
    background-color: #333;
    height: 100vh; /* 替换原有height: 100% */
    margin: 0;
    padding: 0;
    align-items: center;
    justify-content: center;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 23:54:05