固定高度的多行文字垂直居中

假设有一个高度为100px的 div,在这里放一行文字,垂直居中显示,这个大家都会,line-height设置为100px即可!那如果有两行、三行......多行呢?还能通过 line-height 解决么?答案很明显不能!下面一起来看下:

方法:

一、HTML结构

<div class="wrap">
    <div class="subwrap">
        <div class="content">aaaaa<br>bbbbb<br>ccccc</div>
    </div>
</div>

二、CSS

.wrap{  
    display:table;  
    border:1px solid #FF0099;  
    background-color: #FFCCFF;  
    width:760px;  
    height:400px;  
    *position:relative;  
    overflow:hidden;  
}  
.subwrap{  
    vertical-align:middle;  
    display:table-cell;  
    *position:absolute;  
    *top:50%;  
}  
.content{  
    *position:relative;  
    *top:-50%;  
}

说明:

1. diaplay:table; display:table-cell; 用类似表格的方式实现垂直居中(仅对除IE7以后的浏览器)

2. 带有星号的样式针对IE6和IE7,这两怪胎不支持table方式,但办法总比问题多一个,可以对父级元素绝对定位 top:50%;然后在对子元素定位top:-50%,这样可以正好重叠了。

posted @ 2014-09-28 17:44  lpbottle  阅读(336)  评论(0编辑  收藏  举报