您的位置:首页 > Web前端 > CSS

div永远垂直居中的方法

2016-02-25 09:04 525 查看
如果div大小和父级元素大小已定,那垂直居中的方法就很多,今天来讨论下如果子元素大小和父级元素大小都不确定,要保持一个div永远垂直居中的方法。

用CSS3来实现

如果使用css3的话就有挺多的方法。

teansform:translate

.parent{
position:relative;
}
.child{
position:absolute;
top:50%;
left:50;
transform:translateX(-50%);
transform:translateY(-50%);


在绝对定位里,top,left移动的百分比是相对于父级元素的百分比,而translate的百分比是自身大小的百分比,因此这样可以永远保持垂直居中。

flex

.parent{
display: -ms-flex;
display: -webkit-flex;
display: flex;
-ms-flex-align: center;
-webkit-align-items: center;
-webkit-box-align: center;
align-items: center;
}
.child{
margin:0 auto;
}


flex是个好东西,是未来布局的主要趋势。

当然现在要注意兼容性。

用CSS2来实现

table

.parent{display:table;}
.child{display:table-cell;vertical-align:middle;text-align: center;}


table布局虽然我们现在不太用了,但是作为垂直居中的方式还是不错的,简单快捷。

inline-block

.parent{
text-align: center;
line-height: 500px;
border: 1px solid black;
}
.child{
display: inline-block;
vertical-align: middle;
line-height: 30px;
background-color: black;
}


主要就是父元素要有line-height,然后子元素要display成inline-block,然后就能使用vertical-align让其垂直居中了。

这里重点在inline-block,是它的特性。

本来我也没想到还有这个方法的,不过昨天我师父跟我讲了,图片就能使用vertical-align,因为它是inline-block,所以把元素设置成inline-block就也能使用vertical-align。所以呢,学习要举一反三,不然不会有进步。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  css css3 垂直居中 样式