**单行文本: **
使用css属性line-height实现文字垂直居中
每行文字行高跟div盒子高度一样
.wrap{
width: 200px;
height: 200px;
line-height: 200px;
overflow:hidden;
}
overflow:hidden的设置是为了防止内容超出容器或者产生自动换行,这样就达不到垂直居中效果了
多行文本: **
(1)使padding-top=padding-bottom**,前提就是容器的高度必须是可伸缩的
div{ padding:25px; }
(2)、使用定位将一个盒子固定在div块中间,将p标签放在盒子中就可实现多行垂直居中。
.wrap{
width: 200px;
height: 200px;
position: relative;
}
.inner{
text-align: center;/*水平居中 */
width: 140px;
height: 90px;
position: absolute;
left: 0px;
right: 0px;
top: 0px;
bottom: 0px;
margin: auto;
}
(3)、借助line-height和vertical-align实现多行文字垂直居中。
p{
line-height:150px;
}
p>span{
display:inline-block;
line-height:1.4em;
vertical-align:middle;
font-size:18px;
}
(4)、就是把文字当图片处理。用一个span标签把所有的文字包进来,设置文字与图片相同的display属性(inline-block属性),然后用处理图片垂直居中的方式处理文字的垂直居中即可。
.wrap{
width:550px;
height:200px;
display:table-cell;
vertical-align:middle;
}
.inner{
display:inline-block;
font-size: 18px;
text-align: center;/*文字水平居中*/
}
(5)用display:table和display:table-cell模拟<table>就可以使用vertical-align了
.wrap{
height:400px;
display:table;
}
.content{
vertical-align:middle;
display:table-cell;
width:760px;
}
InternetExplorer6并不能正确地理解display:table和display:table-cell,因此这种方法在InternetExplorer6及以下的版本中是无效的
相关参考
使用css属性line-height实现文字垂直居中的问题
大小不固定的图片、多行文字的水平垂直居中
6 Methods For Vertical Centering With CSS
div垂直居中的N种方法 单行/多行文字(未知高度/固定高度)
水平垂直居中问题解法
CSS制作水平垂直居中对齐
Centering in the Unknown