登录页错位主因是Flexbox对齐逻辑误用;需确保父容器有明确高度(如min-height:100vh)、正确设置flex-direction、并同时使用justify-content和align-items实现双轴居中。
登录页错位,八成是没用对 Flexbox 的对齐逻辑。不是加了 display: flex 就自动居中——关键在容器的 主轴 和 交叉轴 设置是否匹配目标效果。
常见错误:直接给 body 或未设高度的 div 加 display: flex,但父元素没高度,自然撑不开,居中就失效。
.login-wrapper)设置明确高度,例如 min-height: 100vh
display: flex、flex-direction: column(垂直布局常用)或 row(水平居中常用)html 或 body 撑满全屏却忘了重置默认 margin/padding居中 = 水平 + 垂直同时到位。只设一个,大概率偏移:
justify-content: center(主轴居中,主轴方向由 flex-direction 决定)align-items: center(交叉轴居中)flex-direction: column,那么 justify-content 控制垂直,align-items 控制水平flex-direction: column + justify-content: center + align-items: center,语义更直观登录框(.login-form)本身也常设 flex,但容易忽略子项的默认行为:
display: flex 到表单上,要确认子项没有 margin 或 width
冲突width: 100% 却忘了父容器没设宽度——用 max-width: 400px 限定表单宽度更稳妥line-height、padding 是否一致,flex 自身不负责内边距对齐调试时别靠猜,用浏览器开发者工具临时加样式:
$0.style.border="1px solid red" 快速标出它的实际范围justify-content 和 align-items 是否被其他规则覆盖(比如被 reset.css 重置)