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

为何flex布局下的div仅水平居中,无法实现垂直居中?

问题原因

Flex布局中align-items: center要实现垂直方向居中,必须满足一个前提:flex容器本身有明确的、比内部内容更大的高度。
你写的#login-form没有设置任何高度,默认高度是被内部的表单内容撑起来的,容器和内容高度完全一致,当然看不到垂直居中的效果。另外浏览器默认的html、body标签本身没有高度,不会自动占满整个浏览器窗口,这也是垂直居中不生效的常见连带问题。

解决步骤
  • 先清除浏览器默认的外边距,同时让html、body标签占满整个浏览器视口高度:
html, body {
    margin: 0;
    height: 100%;
}
  • 给#login-form设置高度,让它占满父元素(也就是body)的全部高度,你之前写的flex相关属性不用改:
#login-form {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
}

如果你不需要表单在整个浏览器窗口居中,只需要在某个固定高度的区块内居中,只需要给对应的flex容器设置明确的高度值即可,不需要修改html和body的样式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 08:09:25