CSS:实现多行文本垂直居中的四种方法
对于单行文本,可以使用行高等于高度来设置垂直居中,但多行文本不适用。实现多行文本垂直居中的四种方法1. 利用表格元素table+vertical-align实现将父元素设置为块级表格来显示,再将子元素设置为一个表格单元格显示后,设置vertical-align: middle;即实现效果。<body><div class="text"><span>扩展: Vue
·
对于单行文本,可以使用行高等于高度来设置垂直居中,但多行文本不适用。
实现多行文本垂直居中的四种方法
1. 利用表格元素table+vertical-align实现
将父元素设置为块级表格来显示,再将子元素设置为一个表格单元格显示后,设置vertical-align: middle;即实现效果。
<body>
<div class="text">
<span>扩展: Vue.js 是一套构建用户界面的渐进式框架。 它与其他重量级框架不同的是,Vue 采用的时自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。它不仅容易上手,而且还便于与第三方库或既有项目整合。</span>
</div>
<script src="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;
}
效果:
更多推荐
已为社区贡献2条内容
所有评论(0)