CSS:实现多行文本垂直居中的四种方法

2022年6月8日09:07:33

对于单行文本,可以使用行高等于高度来设置垂直居中,但多行文本不适用。

实现多行文本垂直居中的四种方法

1. 利用表格元素table+vertical-align实现

将父元素设置为块级表格来显示,再将子元素设置为一个表格单元格显示后,设置vertical-align: middle;即实现效果。

<body><divclass="text"><span>扩展: Vue.js 是一套构建用户界面的渐进式框架。 它与其他重量级框架不同的是,Vue 采用的时自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。它不仅容易上手,而且还便于与第三方库或既有项目整合。</span></div><scriptsrc="textCenter.js"></script></body>
.text{display: table;width: 500px;height: 500px;background-color: yellow;}span{display: table-cell;vertical-align: middle;}

注意:对table-cell元素设置百分比的宽高值时是无效的。

2. 父line-height+子行内块+子line-height自定义设置

先对父元素设置高度和行高(相等),将子元素设置为行内块元素,模拟成单行文本,再对子元素设置vertical-align: middle;使其基线对齐,这时还未实现垂直居中,为子元素自定义line-height属性的值,覆盖继承自父元素的行高,即可实现垂直居中。

.text{width: 500px;height: 500px;line-height: 500px;background-color: yellow;}span{display: inline-block;vertical-align: middle;line-height: 18px;}

3. 子元素设为行内块元素+利用相对定位进行平移(translateY)

先将子元素设置为行内块元素,再对子元素设置相对定位,之后利用top和transform设置平移。

.text{width: 500px;height: 500px;background-color: yellow;}span{display: inline-block;position: relative;top: 50%;transform:translateY(-50%);}

4. 利用弹性布局flex+align-items

利用flex弹性布局,将父元素设置为弹性盒子,并设置父元素align-items: center,即定义flex子项在flex容器侧轴方向上的对齐方式为center。

.text{display: flex;width: 500px;height: 500px;background-color: yellow;align-items: center;}

效果:
CSS:实现多行文本垂直居中的四种方法

  • 作者:TwoZeroZero
  • 原文链接:https://blog.csdn.net/KongKong_Rac/article/details/109102749
    更新时间:2022年6月8日09:07:33 ,共 1304 字。