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 布局方法,它们更简洁、灵活且易于维护。

相关推荐
乌暮6 小时前
请求进门先安检:Spring 拦截器与统一功能实战指南
java·开发语言·后端·学习·spring
学长毕设6 小时前
基于SpringBoot的烘焙商品商品系统-附源码
java·spring boot·后端
开开心心就好7 小时前
竖式除法出题工具,整除余数混合模式
运维·服务器·前端·javascript·ocr·perl·1024程序员节
起个名字费劲死了7 小时前
Halcon学习一:骰子识别
前端·python·学习
大江东去浪淘尽千古风流人物7 小时前
【HexVIO】DSP卸载双目惯性VIO:Hexagon向量化前端与单帧融合调度深度解析
前端·状态模式·slam·dsp·vio·hexagon·移动端加速
其实防守也摸鱼7 小时前
Chrome 扩展安全攻防实录:从攻击面到防御实践
开发语言·前端·网络·chrome·安全·web安全·php
web打印社区7 小时前
Lodop排障总纲-常见报错一张表
开发语言·前端·javascript·chrome·websocket
金銀銅鐵7 小时前
[Java] 用纯 Swing 做一个《論語·學而》阅读器
java·ai编程·交互设计
李剑一7 小时前
为什么几乎所有的知名开源项目都是外国人写的?
前端·ai编程·deepseek
小郎君6587 小时前
(一)为什么表单需要第三种状态:disabled、readonly 与纯文本展示
前端·vue.js