本篇是我整理的多行文本垂直居中的三种方法

效果图如下图

方法一:父元素使用display:table和子元素使用display:table-cell属性来模拟表格,子元素设置vertical-align:middle即可垂直居中

<div class="span_box bg_box"><span class="words_span">方法一:父元素使用display:table和子元素使用display:table-cell属性来模拟表格,子元素设置vertical-align:middle即可垂直居中</span>
</div>
.bg_box {width: 300px;height: 300px;margin-top: 20px;background-color: #BBBBBB;
}
/*方法一*/
.span_box {display: table;
}
.words_span {display: table-cell;vertical-align: middle;
}

方法二:对子元素设置display:inline-block属性,使其转化成行内块元素,模拟成单行文本。父元素设置对应的height和line-height。对子元素设置vertical-align:middle属性,使其基线对齐。添加line-height属性,覆盖继承自父元素的行高。缺点:文本的高度不能超过外部盒子的高度。

<div class="p_box bg_box"><p class="words_p">方法二:对子元素设置display:inline-block属性,使其转化成行内块元素,模拟成单行文本。父元素设置对应的height和line-height。对子元素设置vertical-align:middle属性,使其基线对齐。添加line-height属性,覆盖继承自父元素的行高。缺点:文本的高度不能超过外部盒子的高度。</p>
</div>
.bg_box {width: 300px;height: 300px;margin-top: 20px;background-color: #BBBBBB;
}
/*方法二*/
.p_box {line-height: 300px;
}
.words_p {display: inline-block;line-height: 20px;  /*单独给子元素设置行高,覆盖父级元素的行高*/vertical-align: middle;  /*基线居中对齐*/
}

方法三:脱离文档流的居中方式,把内部div设置宽高之后,再设置top为50%,使用负边距调整,将margin-top设置为负的高度的一半就可以垂直居中了。缺点:需要计算出多行文字固定的高度。高度一旦改变,负边距也要调整。

<div class="wrapper bg_box"><div class="content_box">方法三:脱离文档流的居中方式,把内部div设置宽高之后,再设置top为50%,使用负边距调整,将margin-top设置为负的高度的一半就可以垂直居中了。缺点:需要计算出多行文字固定的高度。高度一旦改变,负边距也要调整。</div>
</div>
.bg_box {width: 300px;height: 300px;margin-top: 20px;background-color: #BBBBBB;
}
/*方法三*/
.wrapper {position: relative;overflow: hidden;
}
.content_box {position: absolute;top: 50%;width: 300px;height: 127px; /*本页面中这么多文字的高度,文本篇幅改变,高度也会变*/margin-top: -63.5px;  /*height的一半*/
}

三种方法放一起的效果和代码

<body>
<div class="span_box bg_box"><span class="words_span">方法一:父元素使用display:table和子元素使用display:table-cell属性来模拟表格,子元素设置vertical-align:middle即可垂直居中</span>
</div>
<div class="p_box bg_box"><p class="words_p">方法二:对子元素设置display:inline-block属性,使其转化成行内块元素,模拟成单行文本。父元素设置对应的height和line-height。对子元素设置vertical-align:middle属性,使其基线对齐。添加line-height属性,覆盖继承自父元素的行高。缺点:文本的高度不能超过外部盒子的高度。</p>
</div>
<div class="wrapper bg_box"><div class="content_box">方法三:脱离文档流的居中方式,把内部div设置宽高之后,再设置top为50%,使用负边距调整,将margin-top设置为负的高度的一半就可以垂直居中了。缺点:需要计算出多行文字固定的高度。高度一旦改变,负边距也要调整。</div>
</div>
</body>
.bg_box {width: 300px;height: 300px;margin-top: 20px;background-color: #BBBBBB;
}/*方法一*/
.span_box {display: table;
}
.words_span {display: table-cell;vertical-align: middle;
}/*方法二*/
.p_box {line-height: 300px;
}
.words_p {display: inline-block;line-height: 20px;  /*单独给子元素设置行高,覆盖父级元素的行高*/vertical-align: middle;  /*基线居中对齐*/
}/*方法三*/
.wrapper {position: relative;overflow: hidden;
}
.content_box {position: absolute;top: 50%;width: 300px;height: 127px; /*本页面中这么多文字的高度,文本篇幅改变,高度也会变*/margin-top: -63.5px;  /*height的一半*/
}

多行文本垂直居中的三种方法相关推荐

  1. CSS图片水平垂直居中的三种方法

    CSS图片水平垂直居中的三种方法 设置行高 使用定位和translate 使用弹性盒子 设置行高 我们知道img元素为行内快元素,所以首先设置图片元素的父元素里文字水平居中,行高与整体高度一致. 其次 ...

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

    对于单行文本,可以使用行高等于高度来设置垂直居中,但多行文本不适用. 实现多行文本垂直居中的四种方法 1. 利用表格元素table+vertical-align实现 将父元素设置为块级表格来显示,再将 ...

  3. html2张图片垂直居中,任意图片实现垂直居中的三种方法(兼容性还不错)

    在网站开发过程中,可能会有希望图片垂直居中的情况,而且,需要垂直居中的图片的高度也不确定,这就会给页面的布局带来一定的挑战.我总结了一下,曾经使用过的几种方法来使图片垂直居中,除了第一种方法只限于标准 ...

  4. html整体垂直居中,让html img图片垂直居中的三种方法

    三种让img元素图片在盒子内垂直居中的方法教程,遵循代码与文章教程懂得驾驭并加以应用. 一.使用flex完成垂直居中 操作css flex实现垂直居中.flex兴许不是实现垂直居中最好的抉择,因为IE ...

  5. a标签居中 img vue,让html img图片垂直居中的三种方法

    三种让img元素图片在盒子内垂直居中的方式教程,依据代码与文章教程熟习掌握并加以应用. 一.使用flex完成垂直居中 操纵css flex实现垂直居中.flex或许不是完成垂直居中最好的选择,由于IE ...

  6. 不定高垂直居中的三种方法

    不定高垂直居中(核心代码) 1.display:table-cell + vertical-align:middle 父元素(.parent)设置display:table-cell 变成单元格,再设 ...

  7. CSS 实现垂直居中的三种方法

    1.table-cell + vertical-align vertical-align 适用于inline-block 和 table-call 2. absolute + transform 3. ...

  8. python提供了方法用于读取文本文件内容_python提供了哪三种方法用于读取文本文件的内容?...

    三种方法分别是:"read()"."readline()"."readlines()"."read()"是一次性读取文件 ...

  9. 让子盒子水平和垂直居中的五种方法

    首先创建互相嵌套的两个盒子 浏览器中打开,盒子的样式为: 接下来是让子盒子水平和垂直居中的五种方法: 方法一:利用文本水平居中text-align: center和行高line-height进行实现 ...

最新文章

  1. python isodd()判断奇偶_位运算(1的个数;2.判断奇偶)
  2. JAVA中关于JDBC与JDBC-ODBC数据源连接数据库的区别
  3. 大咖云集!航天智慧物流创意组-技术培训第三期
  4. Func与Action
  5. 050_Boolean对象
  6. python2安装_Linux 上安装 appium 的辛酸
  7. Keil生成汇编文件、bin文件
  8. extjs6 引入ux_关于UX以及如何摆脱UX的6种常见误解
  9. Linux常用命令及笔记
  10. 如何搭建python框架_从0到1告诉你搭建完整Python+requests接口自动化测试框架!
  11. 双榜首!华为云擎天架构刷新进化计算大赛新纪录!
  12. excel线性拟合的斜率_邵励治的机器学习 2 / 100 天:「简单线性回归」
  13. 安装scss_React Native + Typescript + Scss开发配置过程
  14. UML设计(团队作业)
  15. 面试题:不使用其他变量交换两个数字
  16. 【图像重建】基于matlab字典学习W-KSVD图像低秩重建【含Matlab源码 1763期】
  17. 没有任何机械基础,如何自学机械设计?
  18. ztek usb转串口 linux,Z-TEK USB转串口驱动下载
  19. 高二计算机考试题库和答案,2017计算机基础考试题库及答案
  20. ERP ERP原理与应用试题(附答案)

热门文章

  1. (适配方案总结)客户薅公司两台ipad,我还要给做适配?
  2. ubuntu安装gef,pwndbg,peda
  3. poj1606 Jugs(BFS)
  4. 新手前端微信小程序img图片无法显示问题
  5. 程序员在技术之外,还要掌握一个技能——自我营销能力
  6. MySQL 部门员工工资表 综合练习
  7. 线性电路中DAC和ADC的校准
  8. python随机数种子seed()的讲解
  9. 《设计模式入门》 19.命令模式
  10. Pr零基础入门指南笔记一——项目、序列、预设