参考了: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的值。

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

 

posted on 2015-10-21 15:52  前端小菜j  阅读(374)  评论(0编辑  收藏  举报