zoukankan      html  css  js  c++  java
  • 垂直居中之父元素高度确定的文本

    父元素高度确定的文本分为:单行文本和多行文本

    1、如何设置单行文本垂直居中呢?

      父元素高度确定的单行文本的竖直居中的方法是通过设置父元素的 height  line-height 高度一致来实现的。(height: 该元素的高度,line-height: 顾名思义,行高(行间距),指在文本中,行与行之间的基线间的距离 )。

      line-height 与 font-size 的计算值之差,在 CSS 中成为“行间距”。分为两半,分别加到一个文本行内容的顶部和底部。如下图所示:

     使用单行文本的缺点:当文字内容的长度大于块的宽时,就有内容脱离了块。

     1 <!DOCTYPE html>
     2 <html>
     3 <head>
     4     <title></title>
     5     <meta charset="utf-8">
     6     <style>
     7         .wrap h2{
     8             margin:0;
     9             height:100px;
    10             line-height:100px;
    11             background:#ccc;
    12         }
    13     </style>
    14 </head>
    15 <body>
    16     <div class="wrap">
    17         <h2>hi,imooc!</h2>
    18     </div>
    19 </body>
    20 </html> 

    结果如下:

     

    2、如何设置多行文本垂直居中呢?

    方法一:使用插入 table  (包括tbody、tr、td)标签,同时设置 vertical-align:middle。

    css 中有一个用于竖直居中的属性 vertical-align,在父元素设置此样式时,会对inline-block类型的子元素都有用。

     1 <!DOCTYPE html>
     2 <html>
     3 <head>
     4     <title></title>
     5     <meta charset="utf-8">
     6     <style>
     7         .wrap{height:300px;background:#ccc}
     8     </style>
     9 </head>
    10 <body>
    11     <table><tbody><tr><td class="wrap">
    12         <div>
    13             <p>看我是否可以居中。</p>
    14             <p>看我是否可以居中。</p>
    15             <p>看我是否可以居中。</p>
    16             <p>看我是否可以居中。</p>
    17             <p>看我是否可以居中。</p>
    18         </div>
    19     </td></tr></tbody></table>
    20 </body>
    21 </html>

    结果如下:

    注: td 标签默认情况下就默认设置了 vertical-align 为 middle,所以我们不需要显式地设置了。

    方法二: chrome、firefox 及 IE8 以上的浏览器下可以设置块级元素的 display 为 table-cell(设置为表格单元显示),激活 vertical-align属性,但注意 IE6、7 并不支持这个样式, 兼容性比较差。

    注:这种方法的好处是不用添加多余的无意义的标签,但缺点也很明显,它的兼容性不是很好,不兼容 IE6、7而且这样修改display的block变成了table-cell,破坏了原有的块状元素的性质。

    HTML代码:

    <div class="container">
        <div>
            <p>看我是否可以居中。</p>
            <p>看我是否可以居中。</p>
            <p>看我是否可以居中。</p>
        </div>
    </div>

    CSS代码:

    <style>
    .container{
        height:300px;
        background:#ccc;
        display:table-cell;/*IE8以上及Chrome、Firefox*/
        vertical-align:middle;/*IE8以上及Chrome、Firefox*/
    }
    </style>
  • 相关阅读:
    时寒冰先生文章转载
    [转]迭代经理是什么角色
    [转]如何抉择重构?
    面面俱到:SQL SERVER 2008主数据管理
    [转]用户故事【任务分解】和软件开发不得不说的故事
    读书心得3:去功利化&推荐两本书 转时寒冰
    沟通模式中的方式与过程
    系统分析与设计笔记 -系统类型
    加入敏捷团队宣言
    [转]敏捷进展学习 新项目Sprint
  • 原文地址:https://www.cnblogs.com/snow1234/p/6682782.html
Copyright © 2011-2022 走看看