在CSS中,position: absolute;
会使元素脱离文档流,其位置会相对于最近的已定位父元素(即设置了position
为absolute
、relative
或fixed
的元素)进行定位,如果没有已定位的父元素,则会相对于初始包含块(通常是视口或页面本身)进行定位。
由于position: absolute;
的元素是根据top
、right
、bottom
和left
这四个属性来确定位置的,而不是像普通文档流中的元素那样根据margin
和宽度来自动计算位置,所以margin: 0 auto;
这种通常用于水平居中的方法就失效了。margin: auto;
在绝对定位元素上不起作用,因为绝对定位元素没有“自动”的边距空间可计算——它们的位置是固定的。
要解决这个问题,你可以使用以下几种方法来实现绝对定位元素的居中:
-
使用transform属性:
.centered-element { position: absolute;