当前位置: 首页 > news >正文

CSS 中实现 div 居中有以下几种常用方法

在 CSS 中实现 div 居中有以下几种常用方法,具体取决于需要 ​​水平居中​​、​​垂直居中​​ 还是 ​​两者兼具​​。以下是详细解决方案:

目录

一、水平居中(Horizontal Centering)

1. 行内块元素(Inline-Block)

2. 固定宽度 + margin: auto

3. Flexbox 弹性布局

二、垂直居中(Vertical Centering)

1. 绝对定位 + 变换(Transform)

2. Flexbox 弹性布局

3. Grid 网格布局

三、水平 + 垂直双居中(Perfect Center)

1. Flexbox(推荐)

2. Grid 网格布局

3. 绝对定位 + 变换

四、其他场景

1. 行内元素(Text/Inline)居中

2. 多行文本垂直居中

关键点总结



一、水平居中(Horizontal Centering)

1. 行内块元素(Inline-Block)

css

.parent {text-align: center; /* 父容器设置 */
}
.child {display: inline-block; /* 子元素转为行内块 */
}
2. 固定宽度 + margin: auto

css

.child {width: 300px;margin: 0 auto; /* 左右外边距自动分配 */
}
3. Flexbox 弹性布局

css

.parent {display: flex;justify-content: center; /* 水平居中 */
}

二、垂直居中(Vertical Centering)

1. 绝对定位 + 变换(Transform)

css

.parent {position: relative; /* 父容器相对定位 */
}
.child {position: absolute;top: 50%;transform: translateY(-50%); /* 上移自身高度的50% */
}
2. Flexbox 弹性布局

css

.parent {display: flex;align-items: center; /* 垂直居中 */
}
3. Grid 网格布局

css

.parent {display: grid;place-items: center; /* 垂直水平居中 */
}

三、水平 + 垂直双居中(Perfect Center)

1. Flexbox(推荐)

css

.parent {display: flex;justify-content: center; /* 水平 */align-items: center;     /* 垂直 */height: 100vh;           /* 父容器需有高度 */
}
2. Grid 网格布局

css

.parent {display: grid;place-items: center; /* 一步到位 */height: 100vh;
}
3. 绝对定位 + 变换

css

.parent {position: relative;height: 100vh;
}
.child {position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%); /* 上移左移自身尺寸的50% */
}

四、其他场景

1. 行内元素(Text/Inline)居中

css

.parent {text-align: center; /* 直接继承 */
}
2. 多行文本垂直居中

css

.parent {display: flex;align-items: center;line-height: 1.5; /* 与容器高度一致 */
}

关键点总结

方法适用场景优点缺点
margin: auto固定宽度元素水平居中简单需明确宽度
Flexbox现代布局,支持动态尺寸灵活,代码简洁兼容性(IE10+)
Grid二维布局,一步到位强大,适合复杂设计兼容性(IE不支持)
绝对定位 + 变换未知尺寸元素居中无需固定尺寸需父容器定位

​推荐优先使用 Flexbox 或 Grid​​,它们更符合现代 Web 开发需求,且代码简洁易维护。

相关文章:

  • ADB -> pull指令推送电脑文件到手机上
  • 大数据学习(109)-Impala 和 Hive 之间的 SQL 差异
  • 机器学习 Day13 Boosting集成学习方法: Adaboosting和GBDT
  • Spark-SQL连接Hive总结及实验
  • 使用SystemWeaver生成SOME/IP ETS ARXML的完整实战指南
  • 23种设计模式-结构型模式之外观模式(Java版本)
  • C++std::map
  • 批量替换多个 Word 文档中的指定图片
  • Spark SQL核心解析:大数据时代的结构化处理利器
  • 奇怪的问题
  • 【大数据分析】Apache Doris高性能实时分析数据库:MPP架构下的多场景应用与优势分析以及部署应用
  • 第十四届蓝桥杯 2023 C/C++组 飞机降落
  • 外网如何连接内网中的mysql数据库服务器
  • 云原生--基础篇-2--云计算概述(云计算是云原生的基础,IaaS、PaaS和SaaS服务模型)
  • 微信小程序 == 倒计时验证码组件 (countdown-verify)
  • 【Linux】:HTTPS协议
  • 阿里V2 点击验证码/新版 2.0-2.1-3.1-3.2 动态Fell
  • 【上位机——MFC】运行时类信息机制
  • C++ GPU并行计算开发实战:利用CUDA/OpenCL加速粒子系统与流体模拟
  • git比较不同分支的不同提交文件差异
  • 安徽一季度GDP为12265亿元,同比增长6.2%
  • 著名电化学家、我国工业电化学奠基人之一郭鹤桐逝世
  • 商务部:新一轮服务业扩大开放一次性向11个试点省市全面铺开
  • 外媒:罗马教皇方济各去世
  • 商务部24日下午将举行发布会,介绍近期商务领域重点工作情况
  • 农业未来十年展望:预计粮食单产水平将提高7.8%,达到421千克/亩