使用 flexbox 实现 div 在视口内绝对居中,关键在于为 body 设置 `display: flex`、`justify-content: center`、`align-items: center` 及 `height: 100vh`,并清除默认 margin。
要让一个
元素精确地水平且垂直居中于整个浏览器视口(viewport)中央,最简洁可靠的现代方案是采用 Flexbox 布局,并确保父容器(即 )占据完整视口高度。只需对
应用以下 CSS 即可实现“一劳永逸”的居中效果:body {
margin: 0; /* 清除浏览器默认外边距 */
display: flex; /* 启用 Flex 布局 */
justify-content: center; /* 水平居中 */
align-items: center; /* 垂直居中 */
height: 100vh; /* 占满整个视口高度 */
}此时,任意直接子元素(如 .box)会自动在视口正中心呈现,无需额外设置其内部的 display: flex 或居中属性(除非你有更精细的内部布局需求)。
? 注意:原代码中仅设置了 justify-content: center,却遗漏了 align-items: center 和 height: 100vh,导致仅水平居中、垂直方向仍按文档流自然排列——这是常见疏漏。
* {
box-sizing: border-box;
}
body {
margin: 0;
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh; /* 推荐用 min-height 防止内容撑高时错位 */
background-color: #f5f5f5;
}
.box {
border: 5px solid #000;
padding: 1.5rem;
text-align: center;
background: white;
border-radius: 8px;
box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
+ transform 方案,但本例中无需降级。掌握这一模式后,无论是登录框、模态弹窗还是游戏启动页(如示例中的 BLACKJACK 标题区),都能以最少代码实现精准视觉居中。