千家信息网

CSS如何实现不定宽高的垂直水平居中

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要为大家展示了"CSS如何实现不定宽高的垂直水平居中",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"CSS如何实现不定宽高的垂直水平居中"这篇文章
千家信息网最后更新 2026年11月02日CSS如何实现不定宽高的垂直水平居中

这篇文章主要为大家展示了"CSS如何实现不定宽高的垂直水平居中",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"CSS如何实现不定宽高的垂直水平居中"这篇文章吧。

垂直居中,在 CSS 中是一个老生常谈的问题,面试的时候也会时常被提及。所以,今天我们就来聊聊 9 种不同的居中方法。

有常见的 flex、transform、absolute 等等。也有 CSS3 的网格布局。还有伪元素的方法,是的,你没有看错,::after 和 ::before 也可以实现居中。

1、flex

大家的第一反应,可能就是 flex 了。因为它的写法够简单直观,兼容性也没什么问题。是手机端居中方式的首选。

horizontal and vertical

.wrapper {    width: 300px;    height: 300px;    border: 1px solid #ccc;}.flex-center {    display: flex;    justify-content: center;    align-items: center;}专门建立的学习Q-q-u-n ⑦⑧④-⑦⑧③-零①②  分享学习方法和需要注意的小细节,互相交流学习,不停更新最新的教程和学习技巧(从零基础开始到WEB前端项目实战教程,学习工具,全栈开发学习路线以及规划)

利用到了 2 个关键属性:justify-content 和 align-items,都设置为 center,即可实现居中。

需要注意的是,一定要把这里的 flex-center 挂在父级元素,才能使得其中 唯一的 子元素居中。

2、flex + margin

这是 flex 方法的变种。父级元素设置 flex,子元素设置 margin: auto;。可以理解为子元素被四周的 margin "挤" 到了中间。

horizontal and vertical

.wrapper {    width: 300px;    height: 300px;    border: 1px solid #ccc;    display: flex;}.wrapper > p {    margin: auto;}
3、transform + absolute

这个组合,常用于图片的居中显示。

.wrapper {    width: 300px;    height: 300px;    border: 1px solid #ccc;    position: relative;}.wrapper > img {    position: absolute;    left: 50%;    top: 50%;    transform: translate(-50%, -50%);}

当然,也可以将父元素 wrapper 的相对定位,移入子元素 img 中,替换掉绝对定位。效果是一样的。

4、table-cell

利用 table 的单元格居中效果展示。与 flex 一样,需要写在父级元素上。

horizontal and vertical

.wrapper {    width: 300px;    height: 300px;    border: 1px solid #ccc;    display: table-cell;    text-align: center;    vertical-align: middle;}

5、absolute + 四个方向的值相等

使用绝对定位布局,设置 margin:auto;,并设置 top、left、right、bottom 的 值相等即可(不一定要都是 0)。

horizontal and vertical

.wrapper {    width: 300px;    height: 300px;    border: 1px solid #ccc;    position: relative;}.wrapper > p {    width: 170px;    height: 20px;    margin: auto;    position: absolute;    top: 0;    left: 0;    right: 0;    bottom: 0;}

这种方法一般用于弹出层,需要设置弹出层的宽高。

6、writing-mode

这个方法可以改变文字的显示方向,比如让文字的显示变为垂直方向。

horizontal and vertical

.wrapper {    width: 300px;    height: 300px;    border: 1px solid #ccc;    writing-mode: vertical-lr;    text-align: center;}.wrapper > .wrapper-inner {    writing-mode: horizontal-tb;    display: inline-block;    text-align: center;    width: 100%;}.wrapper > .wrapper-inner > p {    display: inline-block;    margin: auto;    text-align: left;}

兼容性上还有些小瑕疵,但大部分浏览器,包括手机端已支持 writing-mode 的写法了。

7、grid

像表格一样,网格布局让我们能够按行或列来对齐元素。 然而在布局上,网格比表格更可能做到或更简单。

horizontal and vertical

.wrapper {    width: 300px;    height: 300px;    border: 1px solid #ccc;    display: grid;}.wrapper > p {    align-self: center;    justify-self: center;}

但它在兼容性上不如 flex,特别是 IE 浏览器,只支持 IE10 及以上。

8、::after

伪元素也能用来实现居中么?感觉还是挺神奇的,看下面这个例子:

.wrapper {    width: 300px;    height: 300px;    border: 1px solid #ccc;    text-align: center;}.wrapper::after {    content: '';    display: inline-block;    vertical-align: middle;    height: 100%;}.wrapper > img {    vertical-align: middle;}

水平方向很好理解。垂直方向,可以理解为 ::after 把 img 往下拉到了中间。

9、::before

另一种是配合 font-size: 0; 共同施展的魔法。

.wrapper {    width: 300px;    height: 300px;    border: 1px solid #ccc;    text-align: center;    font-size: 0;}.wrapper::before {    display: inline-block;    vertical-align: middle;    font-size: 14px;    content: '';    height: 100%;}.wrapper > img {    vertical-align: middle;    font-size: 14px;}

font-size: 0; 的神秘之处在于,可以消除标签之间的间隙。另外,因为伪元素搭配的,都是最基础的 CSS 写法,所以不存在兼容性的风险。

以上是"CSS如何实现不定宽高的垂直水平居中"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

元素 学习 方法 方向 水平 兼容性 布局 内容 写法 篇文章 网格 定位 基础 手机 效果 教程 文字 浏览器 表格 问题 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海挚品互联网科技有限公司 互联网科技产业 为想互联网科技怎么样 美国互联网保险保险科技 互联网科技有限公司经营范围 为想互联网科技 苏州互联网科技贷款公司 亿账通互联网科技 互联网科技的未来发展 太原新华互联网科技学校怎么样 剑昆互联网络科技有限公司临桂 以后互联网后是啥科技 知域互联网科技有限公司大骗子 恒生互联网科技指数跳水 广州市恰铎互联网科技有限公司 健康食品互联网创新科技园项目 互联网科技手抄报图片 银川新华互联网科技学校原画 恒生互联网科技趋势 山东亿川互联网科技有限责任公司 中国互联网科技工作委员会毛军 重生之互联网科技帝国 互联网核心科技是什么 朗新科技与工业互联网 壹账通互联网科技 大白互联网科技 互联网巨头投资的硬核科技 互联网大会黑科技排名 智帮互联网科技公司最近动向 恒生科技指数 中概互联网
0