父元素高度确定的多行文本、图片等的竖直居中的方法有两种:
第一种方法使用插入table(包括tbody、tr、td)标签,同时设置vertical-align:middle。
css中有一个用于竖直居中的属性vertical-align,在父元素设置此样式时,会对inline-block类型的子元素都有用。
HTML代码:
<body>
<table><tbody><tr><td class="wrap">
<div>
<p>看我是否居中</p>
</div>
</td></tr></tbody></tbable>
</body>
CSS代码:
table td{height:500px;background:#ccc}
因为td标签默认情况下就默认设置了vertical-align为middle,所以我们不需要显式地设置了。
第二次方法是通过设置块级元素的display为table-cell(设置为表格单元显示),激活vertical-align属性。
HTML代码:
<div class="container">
<div>
<p>看我是否可以居中</p>
<p>看我是否可以居中</p>
<p>看我是否可以居中</p>
</div>
</div>
css代码:
<style>
.container{
height:300px;
background;#ccc;
display:table-cell;
}
</style>
这种方法的好处是不用添加多余的无意义的标签,但缺点也很明显,它的兼容性不是很好,不兼容IE6、7而且这样修改display的block变成了table-cell,破坏了原有的块状元素的性质。
网友评论