absolute(绝对定位)和 relative(相对定位)

参考了:http://www.w3cfuns.com/article-258-1-1.html

1.在没有父级的情况下

absolute--以浏览器左上角为参考点,trbl辅助定位

relative--以浏览器左上角为参考点,trbl辅助定位 ---如果元素的同级 ,就会以正常的文档流来布局,然后再执行top元素,相当于mairgin-top!

2.有父级,但是父级没有设置position属性

absolute ---以浏览器左上角为参考点,trbl辅助定位

relative--以父级为参考点,trbl辅助定位,如果有padding 以内容区左上角辅助定位

3.有父级,并且父级设置了position属性

absolute ---以父级为参考点,trbl辅助定位,如果有padding  还是以父级左上角辅助定位

relative--以父级为参考点,trbl辅助定位,如果有padding 以内容区左上角辅助定位

4.文档流

absolute ---脱离文档流,站着排队,人一走,位置就没了。

relative--不脱离文档流,取号排队,人一走,位置还在。会占着那个坑,即使给div设置top属性

总结:如果用定位来布局页面,父级元素的position属性必须为relative,因为absolute 需要以浏览器左上角为参考点,,trbl辅助定位 ,当前面的布局发生了改变,会产生影响!

而定位于父级内部某个位置的元素,最好用absolute,因为它不受父级元素的padding的属性影响,当然你也可以用relative,计算的时候不要忘记计算padding的值。

---以上需要自己写几个简单的例子证明下。-

原文地址:https://www.cnblogs.com/qianduanxiaocaij/p/4898039.html