使用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%);