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

居中布局 10 种写法:文字、图片、盒子全部覆盖

居中布局 10 种写法:文字、图片、盒子全部覆盖


居中是前端面试必考、工作必用的高频操作。但"居中"分三种对象、多种场景,写法各不相同。

本文一次性讲完10 种居中方案,按场景分类,直接复制能用。


先搞清三种居中对象

对象核心需求难度
文字/行内内容水平居中
图片/行内块水平居中(有时垂直)⭐⭐
盒子/块级元素水平 + 垂直都居中⭐⭐⭐

10 种写法,逐一来

text-align: center— 文字水平居中(最经典)

适用: 文字、行内元素、图片(图片本质也是行内块)

css

.parent { text-align: center; }

html

<div class="parent"> <p>这段文字居中了</p> <img src="cat.jpg" alt="图片也居中了"> </div>

✅ 最简单、最常用。
❌ 只管水平,不管垂直。


margin: 0 auto— 块级元素水平居中

适用: 有固定宽度的盒子

css

.box { width: 400px; margin: 0 auto; }

html

<div class="box">我是一个居中的盒子</div>

✅ 兼容所有浏览器,不需要新特性。
必须有宽度,宽度用auto无效。只管水平。


Flexbox完美居中 — 水平 + 垂直(首选方案)

适用: 几乎所有居中场景,文字、图片、盒子通吃

css

.parent { display: flex; justify-content: center; /* 水平居中 */ align-items: center; /* 垂直居中 */ height: 300px; }

html

<div class="parent"> <div>我是盒子,我居中了</div> </div>

✅ 一行代码解决水平+垂直,子元素是什么都行。
✅ 当前项目最推荐的方案
❌ IE10 以下不支持。


Grid居中 — 比 Flex 更短

适用: 同样通吃,写法更少

css

.parent { display: grid; place-items: center; /* 水平+垂直一步到位 */ height: 300px; }

html

<div class="parent"> <div>我也居中了</div> </div>

✅ 只需一行place-items: center
✅ Flex 和 Grid 都是现代方案,选哪个都行。


line-height— 单行文字垂直居中

适用: 单行文字,高度已知

css

.box { height: 50px; line-height: 50px; text-align: center; }

html

<div class="box">单行文字垂直居中</div>

✅ 极简,不需要任何新特性。
多行文字会乱,只适合单行。


padding撑开 — 盒子内部内容居中

适用: 不确定内容高度,但希望内容在盒子内居中

css

.box { padding: 20px; text-align: center; }

✅ 不需要知道内容多高。
❌ 本质不是"居中",是"留白"。内容还是靠顶部对齐,只是被撑开了。


position: absolute + transform— 精准居中(万能方案)

适用: 任何情况下的水平+垂直居中,不依赖父元素

css

.child { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }

html

<div class="parent" style="position: relative; height: 300px;"> <div class="child">我在正中间</div> </div>

✅ 不需要知道子元素宽高,也不需要父元素是 Flex/Grid。
✅ 弹窗、浮层、Loading 图标最常用这个。
❌ 父元素必须position: relative(或其他非 static)。


position: absolute + inset: 0 + margin: auto

适用: 已知宽高的盒子,绝对定位居中

css

.child { position: absolute; inset: 0; margin: auto; width: 200px; height: 100px; }

✅ 写起来比 transform 更直观。
❌ 必须知道宽高。


⑨ 表格布局vertical-align: middle— 图片垂直居中

适用: 图片和文字并排,图片垂直对齐

css

.parent { display: table-cell; vertical-align: middle; text-align: center; height: 200px; }

html

<div class="parent"> <img src="cat.jpg" alt="图片垂直居中"> </div>

✅ 兼容老浏览器。
❌ 现在有 Flex,这个写法基本可以退役了。


writing-mode— 竖排文字居中(冷门但有用)

适用: 中文竖排场景(如古籍、书法展示页)

css

.vertical-text { writing-mode: vertical-rl; text-align: center; height: 300px; line-height: 300px; }

html

<div class="vertical-text">竖排文字居中</div>

✅ 唯一能正确处理竖排居中的方案。
❌ 极少用到,但遇到就是救命。


一张表总结:该用哪个?

场景推荐方案备选
文字/图片水平居中text-align: center
有宽度的盒子水平居中margin: 0 autoFlex
盒子水平+垂直居中③ Flex / ④ Grid⑦ transform
单行文字垂直居中line-heightFlex
弹窗/浮层居中transformmargin: auto
竖排文字居中writing-mode
老项目兼容② / ⑨

最后一句话

日常开发,记住 Flex 居中就够了。其他的知道在哪查就行。

这 10 种,够你覆盖所有居中场景。

http://www.jsqmd.com/news/1039581/

相关文章:

  • Briss-2.0终极指南:3步实现PDF智能裁剪与页面优化
  • 终极Sunshine游戏串流服务器指南:10分钟打造你的私人云游戏平台
  • 向量数据库性能调优:从索引选型到检索延迟的实战复盘
  • Obsidian中文社区论坛:从民间自发到官方整合的生态系统演进分析
  • 终极指南:让旧款Mac重获新生,免费升级最新macOS系统
  • 2026市面上质量好的高速线切割制造厂家推荐排行 - 品牌排行榜
  • Microchip 24系列EEPROM选型与I2C应用实战指南
  • 2026年目前专业的邓州旧房卧室改造公司排行 - 品牌排行榜
  • lidR包技术架构深度解析:高性能激光雷达数据处理与林业应用实战
  • Simulink与AirSim联合仿真:无人机自主飞行算法开发与测试
  • 2026年陕西企业变更服务深度解析:实力企业如何选择 - 品牌鉴赏官2026
  • MC68336/376 TouCAN中断与错误处理机制深度解析
  • Mona视觉适配器:轻量级即插即用模块替代SPPF
  • PhotoGIMP终极指南:让Photoshop用户无缝切换到免费开源图像编辑
  • Playnite便携版部署指南:4个突破性方法解决跨设备游戏库管理难题
  • 如何用PKHeX自动合法性插件轻松搞定宝可梦数据合规问题:新手完整实战指南
  • 2026年中青岛亚克力背景墙制造商综合实力深度解析与优选指南 - 品牌鉴赏官2026
  • 考公父母帮选机构怎么比?2026粉笔、中公、华图、导氮对比
  • 如何构建自动驾驶多传感器标定系统:OpenCalib开源工具箱深度剖析
  • 一体机是什么?为什么越来越多的人选择它?
  • 2026年中,东莞奶茶店如何选择靠谱的门头招牌型材定制伙伴? - 品牌鉴赏官2026
  • Autoware自动驾驶开发环境架构解析:从容器化部署到模块化设计的3个核心模式
  • 2026 Java岗面试八股文及答案整理(金九银十最新版)
  • 终极炉石传说增强插件:HsMod 55+功能完全指南
  • 2026年瓯海区空调拆装咨询电话及服务要点 - 品牌排行榜
  • Grounded Segment Anything提升IDM-VTON虚拟试衣精度
  • 3步轻松备份QQ空间完整回忆:GetQzonehistory终极指南
  • MC68336/376 QADC模块详解:嵌入式多通道数据采集自动化方案
  • 2026年广西柳州地下车库环氧地坪漆材料厂家价格大揭秘!
  • YOLOv8增强实战:SPPF门控升级与Mona认知适配器集成指南