最近热衷于前端的开发,由于忽然发现虽然对于网站、应用来讲,功能处于绝对重要的地位,可是用户体验对于用户来说一样是那么的重要,能够说是第一印象。最近在开发当中发现之前对于css中的position的理解有些偏颇,在这里分享一下这几天的学习。css
首先整体介绍一下接下来要分析的position属性的两个值:absolute和relative(绝对定位和相对定位),html
绝对定位:一、当某元素使用绝对定位而且未设置top,left的值时,实际上并未真正脱离文档流,二、使用绝对定位而且设置了top,left时,这才脱离了文档流,并以最外层body元素做为父容器,前端
相对定位:一、当某元素使用相对定位时,不管设不设置top,left的值,都不会脱离文档流浏览器
接下来以实验论证个人观点,贴出一段实验小代码函数
相信这个就不用多作解释了,外层一个div,里面有三个div,第一个是普通div,接下来一个id是absolute,另外一个是relative,摆明了就是分别测试absolute和relative的。学习
咱们在init函数中分别将absolute和relative的div的内容显示两个div分别的top和left测试
最外层div距离浏览器上边框10px,里面第一个(红色)div高度为30,在absolute和relative中能够看出top的值是同样的,那么是否是就说明不管是absolute仍是relative在这个时候都未脱离文档流,由于他们被上面第一个div挤下来了,接下来分别将absolute和relative两个div设置 top=100px,那么结果以下:网站
由上图能够看出,设置了top以后,absolute这个元素的top值是100px,而relative的top值倒是144px,说明absolute这个元素是脱离了文档流以body为父元素的,而relative中的144=100+44,说明relative是之外层div为父容器,而且未脱离文档流,在上一个(红色)div的基础上向下平移了100px,由此证实了以上论断。ui
position属性值还有fixed,和默认值static,以及top,left的用法还有不少注意事项,之后慢慢再说。spa