css中margin和position同时使用

第一个div和第二个header为什么都能达到水平和垂直都居中的效果,当margin和position同时使用,最终效果真是难以理解,请高手解答~~~

当元素绝对定位以后,它在父元素的位置是根据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才真正的垂直居中
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-12-22

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

相似回答