当前位置:   article > 正文

实现多行文字垂直居中几种方法及其解析_多行文本垂直居中

多行文本垂直居中

  场景:父元素 高度固定,如何使其中的文字垂直居中?

1、table布局:

  利用display:table+display:table-cell的方法

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <style>
  8. .middle-box{
  9. display: table; /*重点*/
  10. height: 300px;border: 1px solid #000;
  11. }
  12. /*重点:table-cell布局*/
  13. .middle-inner{
  14. display: table-cell;
  15. vertical-align:middle;
  16. text-align:center;
  17. }
  18. </style>
  19. <body>
  20. <div class="middle-box">
  21. <div class="middle-inner">
  22. <p><span class="suc-tip">前端开发博客,专注前端开发和web教程</span><br/><span class="suc-link">快捷入口:<a href="http://caibaojian.com">http://caibaojian.com</a></span></p>
  23. <p style=""><span class="suc-tip">5年的老博客,一直致力于WEB开发</span></p>
  24. </div>
  25. </div>
  26. </body>
  27. </html>
 

复制代码

效果:

  利用display:table-cell

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <style>
  8. .middle-box{
  9. display: table; /*重点*/
  10. height: 300px;border: 1px solid #000;
  11. }
  12. /*重点:table-cell布局*/
  13. .middle-inner{
  14. display: table-cell;
  15. vertical-align:middle;
  16. text-align:center;
  17. height: 200px;
  18. border:1px solid #000;
  19. }
  20. </style>
  21. <body>
  22. <div class="">
  23. <div class="middle-inner">
  24. <p><span class="suc-tip">前端开发博客,专注前端开发和web教程</span><br/><span class="suc-link">快捷入口:<a href="http://caibaojian.com">http://caibaojian.com</a></span></p>
  25. <p style=""><span class="suc-tip">5年的老博客,一直致力于WEB开发</span></p>
  26. </div>
  27. </div>
  28. </body>
  29. </html>
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>css居中对齐</title>
  6. <style>
  7. *{padding: 0;margin:0;font-size: 12px;}
  8. div{display: table-cell;width: 200px;height:150px;border:1px solid blue;vertical-align: middle;}
  9. </style>
  10. <div>
  11. <span>测试文字测试文字</span>
  12. </div>
  13. <div>
  14. 测试文字测试文字
  15. </div>
  16. <div>
  17. <p>测试文字测试文字</p>
  18. <p>测试文字测试文字</p>
  19. </div>
  20. </body>
  21. </html>

  效果:

  优点:等高布局,无需设置高度,文字轻松实现垂直居中

  缺点:ie7以下不兼容!

2、利用line-height和vertical-align:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>css居中对齐</title>
  6. <style>
  7. *{padding: 0;margin:0;font-size: 12px;}
  8. div{float: left;width: 200px;height:200px;margin: 10px;border:1px solid #000; line-height: 200px;}
  9. span{display: inline-block;vertical-align: middle;line-height: 22px;}
  10. </style>
  11. <div>
  12. <span>测试文字测试文字</span>
  13. </div>
  14. <div>
  15. <span>测试文字 <br/> 测试文字<br/> 测试文字<br/> 测试文字<br/> 测试文字<br/> 测试文字</span>
  16. </div>
  17. </body>
  18. </html>

  效果:

  关键样式:

  ① 父元素(这里是div)设置和高度一致的 line-height (这里是200px)--- 由后面的vertical-align定义看,这是为了设置div的基线

  ② 子元素 (这里是span) 设置合适的line-height,并设置display:inline-block、vertical-align: middle;  --- inline水平的元素无法设置line-height,所以这里要设置inline-block。

  重新审视一下 CSS vertical-align 属性 的定义:

  该属性定义行内元素的基线相对于该元素所在行的基线的垂直对齐,允许指定负长度值和百分比值,这会使元素降低而不是升高。在表单元格中,这个属性会设置单元格框中的单元格内容的对齐方式。

  有以下几点需要注意:

  ① vertical-align属性应该设置到 行内元素上(行内块元素也可)

  ② 如果文字的总高度超出了 容器(这里是div)的高度,那么垂直居中会失效。

  ③ ie7以下 span结束标签和内部内容不能有间隔空白,也就是说span的结束标签和内部内容要连在一起。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/853446
推荐阅读
相关标签
  

闽ICP备14008679号