如何令文本在块级元素中垂直居中

一,使用line-height样式

<style>
    div {
        width: 300px;
        height: 200px;           // 元素高度
        background: lightgray;
        line-height: 200px;     // line-height值与元素高度值保持一致 
    }
</style>
<div>这段文字将垂直居中</div>

  只适用于内容为单行文本、且元素高度已经指定的情况下。多行文本将溢出,未指定元素高度则无法确定line-height的值。

二,使用padding样式

<style>
    div {
        width: 300px;
        background: lightgray;
        padding: 40px;
    }
<style>
<div>这段文字将垂直居中</div>

 

  仅限于元素高度不确定的情况下,如果指定了元素高度,这种方法就不适应了。

三,使用display将元素模拟为表格

<style>
    div.outer {
        width: 300px;
        height: 200px;
        background: lightgray;
        display: table;
    }
    div.inner {
        display: table-cell;
        vertical-align: middle;
    }
</style>
<div class="outer">
    <div class="inner">这段文字将垂直居中,无论这段文字是多行还是单行,他都能完美的显示在块级元素中间。</div>
</div>

  这种方法嵌套了一个新的div,将div.outer显示为表格,div.inner显示为单元格,而单元格具有valign属性,因此vertical-align可对其产生作用。比第二种方法优秀的是,这种方法也适用于指定了高度的元素。此方法缺点是不支持IE6。

 

 

posted @ 2016-11-22 17:03  偏禺  阅读(4090)  评论(0编辑  收藏  举报