css中margin和position同时使用

2024-11-14 11:41:01
推荐回答(2个)
回答1:

当元素绝对定位以后,它在父元素的位置是根据top/left/right/bottom来定位的,而margin是根据自身当前位置来定位的
第一个,它距离父元素left:50%,top:50%,那就是父元素一半的距离,因为要实现居中即自身的中点在父元素的中间才算,所以margin-left/margin-top 负的自身宽/高的一半,那么正好水平垂直居中。
第二个,元素在绝对定位以后,left/rigth和top/bottom是没有优先等级的,不像margin-left作用的时候margin-right没用,那么现在left:0,right:0,两方实力相当,浏览器没办法,都得满足,那就水平居中吧,而绝对定位元素默认top是0.现在margin:20px,那就是把自己往下移动20px。严格来说移动25px才真正的垂直居中

回答2:

Vue实践-CSS样式position/display/float属性对比使用