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

为什么设置display:flex后align-items无法实现div垂直居中?

问题原因

你的代码存在两个核心问题导致垂直居中不生效:

  1. .container-body 没有设置足够的高度:flex 布局的对齐属性生效前提是容器自身高度高于内容高度,你当前没有给该容器设置高度,它的高度仅由内部文本撑开,没有多余空间做垂直对齐。
  2. flex 对齐属性用错:你给 .container-body 设置了 flex-direction: column,此时flex主轴为垂直方向、交叉轴为水平方向,align-items 控制的是交叉轴(水平)方向的对齐,垂直方向的对齐需要使用 justify-content 属性。

修复方案

仅需修改两处CSS即可实现效果:

  1. 给body添加flex布局,让子元素可以自动分配高度:
body {
  width: 100%;
  height: 100vh;
  margin: 0px;
  /* 新增以下两行 */
  display: flex;
  flex-direction: column;
}
  1. 修改.container-body的样式,填充剩余高度并设置垂直居中:
.container-body {
  display: flex;
  align-items: center;
  flex-direction: column;
  /* 新增以下两行 */
  flex: 1; /* 自动占用body中除header外的所有剩余高度 */
  justify-content: center; /* 控制主轴(垂直方向)内容居中 */
}

额外小提示

你代码里html, body的font-size属性值写的是62, 5%,这里的逗号应该改成英文句号62.5%,否则字号设置不会生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 11:21:03