HTML5 中实现盒子水平垂直居中的方法

在 HTML5 中,有几种方法可以让一个定位的盒子在父容器中水平垂直居中。以下是几种常用的方法:

使用 Flexbox 布局

html 复制代码
<div class="parent">
  <div class="child">居中内容</div>
</div>

<style>
  .parent {
    display: flex;
    justify-content: center;  /* 水平居中 */
    align-items: center;      /* 垂直居中 */
    height: 100vh;            /* 设置父容器高度 */
  }
  
  .child {
    /* 子元素不需要特殊样式 */
  }
</style>

使用 Grid 布局

html 复制代码
<div class="parent">
  <div class="child">居中内容</div>
</div>

<style>
  .parent {
    display: grid;
    place-items: center;  /* 水平和垂直居中 */
    height: 100vh;
  }
</style>

使用绝对定位 + transform

html 复制代码
<div class="parent">
  <div class="child">居中内容</div>
</div>

<style>
  .parent {
    position: relative;
    height: 100vh;
  }
  
  .child {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }
</style>

使用绝对定位 + margin auto

html 复制代码
<div class="parent">
  <div class="child">居中内容</div>
</div>

<style>
  .parent {
    position: relative;
    height: 100vh;
  }
  
  .child {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    width: fit-content;  /* 或者指定宽度 */
    height: fit-content; /* 或者指定高度 */
  }
</style>

使用表格布局(传统方法)

html 复制代码
<div class="parent">
  <div class="child">居中内容</div>
</div>

<style>
  .parent {
    display: table;
    width: 100%;
    height: 100vh;
  }
  
  .child {
    display: table-cell;
    text-align: center;  /* 水平居中 */
    vertical-align: middle;  /* 垂直居中 */
  }
</style>

现代 Web 开发中,推荐优先使用 Flexbox 或 Grid 布局方法,它们更简洁、灵活且易于维护。

相关推荐
二哈赛车手4 小时前
新人笔记---ApiFox的一些常见使用出错
java·笔记·spring
代码搬运媛4 小时前
Jest 测试框架详解与实现指南
前端
栗子~~5 小时前
JAVA - 二层缓存设计(本地缓冲+redis缓冲+广播所有本地缓冲失效) demo
java·redis·缓存
YDS8295 小时前
DeepSeek RAG&MCP + Agent智能体项目 —— RAG知识库的搭建和接口实现
java·ai·springboot·agent·rag·deepseek
counterxing5 小时前
我把 Codex 里的 Skills 做成了一个 MCP,还支持分享
前端·agent·ai编程
wangqiaowq5 小时前
windows下nginx的安装
linux·服务器·前端
之歆6 小时前
DAY_12JavaScript DOM 完全指南(二):实战与性能篇
开发语言·前端·javascript·ecmascript
发现一只大呆瓜6 小时前
Vite凭什么这么快?3分钟带你彻底搞懂 Vite 热更新的幕后黑手
前端·面试·vite
Maimai108086 小时前
React如何用 @microsoft/fetch-event-source 落地 SSE:比原生 EventSource 更灵活的实时推送方案
前端·javascript·react.js·microsoft·前端框架·reactjs·webassembly
未若君雅裁6 小时前
MyBatis 一级缓存、二级缓存与清理机制
java·缓存·mybatis