绝对定位与居中对立?解决方案请进!

10 min read

使用position:absolute定位后,元素已经脱离了文档流,不再占据文档空间,所以无法通过margin: 0 auto等方法进行居中。

解决方法是,可以使用left:50%;transform:translateX(-50%);的组合来实现水平居中。代码如下:

position: absolute;
top: 50%;
left: 50%;
transform: translateX(-50%);

如果还需要垂直居中,可以再使用top:50%;transform:translateY(-50%);的组合来实现。代码如下:

position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);