当前位置: 首页 > 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 开发需求,且代码简洁易维护。

http://www.xdnf.cn/news/57601.html

相关文章:

  • 解决Chrome浏览器访问https提示“您的连接不是私密连接”的问题
  • Android 15强制edge-to-edge全面屏体验
  • (7)NodeJS的使用与NPM包管理器
  • 1.2软考系统架构设计师:系统架构的定义与作用 - 练习题附答案及超详细解析
  • 23种设计模式-结构型模式之外观模式(Java版本)
  • Spark和Hadoop的区别和联系
  • 深入理解 DML 和 DQL:SQL 数据操作与查询全解析
  • Java BIO、NIO、AIO、Netty面试题(已整理全套PDF版本)
  • 【NVIDIA】Isaac Sim 4.5.0 加载 Franka 机械臂
  • CMake execute_process用法详解
  • 【Spring Boot基础】MyBatis的基础操作:日志、增删查改、列名和属性名匹配 -- 注解实现
  • 使用 inobounce 解决 iOS 皮筋效果导致的无法下拉刷新
  • pytest-项目结构
  • 管道位移自动化监测方案
  • neo4j-community-3.5.5-unix.tar.gz安装
  • leetcode 647. Palindromic Substrings
  • 从规则到大模型:知识图谱信息抽取实体NER与关系RE任务近10年演进发展详解
  • DSRAM介绍
  • 美创科技20周年庆典顺利举行
  • npm -v npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。来看看永久修改执行策略!
  • Pytorch的极简transformer用于时间序列预测
  • 负载均衡与实时调度—LSF
  • 精益数据分析(10/126):深度剖析数据指标,驱动创业决策
  • 硬件测试项之电源纹波的测量和纹波的要求、纹波的抑制
  • Uniapp:pages.json页面路由
  • 【Linux】进程替换与自定义 Shell:原理与实战
  • Uniapp:创建项目
  • vue3 主题模式 结合 element-plus的主题
  • spark与hadoop的区别
  • 新能源汽车充电桩运营模式的发展与优化路径探析