一、在元素高度、宽度已知时,实现水平垂直居中就很简单了
1 .position_all{ 2 width: 600px; 3 height: 400px; 4 position: absolute; 5 top: 50%; 6 left: 50%; 7 margin-left: -300px;//width的一半 8 margin-top: -200px;//height的一半 9 }
二、当元素本身高度不确定时,margin-left:-50%是不行的,此时百分比不是元素本身的一半。也就是说如果百分比是相对自身就可以了,那我们可以使用css3的transform来代替margin:
1 .position_all{ 2 width: 600px; 3 height: 400px; 4 position: absolute; 5 top: 50%; 6 left: 50%; 7 transform: translate(-50%,-50%); 8 }
但transform目前兼容性不好(手机web开发可忽略)。或者这样,用margin: auto;来实现水平垂直居中:
1 .position_all{ 2 width: 600px; 3 height: 400px; 4 position: absolute; 5 top: 0;left: 0;right: 0;bottom: 0; 6 margin: auto; 7 }