亲测,position:absolute,position:fixed定位,margin:auto下都可以垂直居中,IE8+支持。
.test{
position:fixed;
width:80px;
height:80px;
left:0;
right:0;
top:0;
bottom:0;
margin:auto;
background-color:#000;
color:#fff;
border-radius:4px;
}
原因是定位的布局取决于三个因素,一个是元素的位置,一个是元素的尺寸,一个是元素的margin值。
如果没有设置尺寸和margin的元素会自适应剩余空间,位置固定则分配尺寸,尺寸固定则会分配margi,都是自适应的。
IE7- 的渲染方式不同,渲染规则也不一样,他不会让定位元素去自适应。