欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

CSS父子DIV绝对定位和相对定位的位置关系是怎样的?_html/css_WEB-ITnose

程序员文章站 2022-04-09 18:33:39
...
有两种情况:

1)如果父DIV采用相对定位,其子DIV只能采用绝对定位吗?(根据我的理解:子DIV永远浮于父DIV之上)

2)如果父DIV采用绝对定位,那么可以定义其子DIV吗?


回复讨论(解决方案)

绝对定位如果父级不使用position:relative,而直接使用position:absolute绝对定位,这个时候将会以body标签为父级,使用position:absolute定义对象无论位于DIV多少层结构,都将会被拖出以

为父级(参考级)进行绝对定位。

父级定义position:relative定位,子级定义position:absolute绝对定位属性,并且子级使用left或right和top或bottom进行绝对定位



绝对定位是以body标签为目标

相对定位是以父级标签为目标

绝对定位是以body标签为目标

相对定位是以父级标签为目标



别误导人,相对定位是相对于自身目前所在的位置,绝对定位是相对于父元素是否用了定位,父元素用了就依据父元素来定位,如果父元素没有就一直往父、父、父、、、元素,看看祖先元素哪个用了定位(只要是用了定位样式就可以),就依据用了定位的祖先元素定位。

这么说吧,绝对定位:如果父元素用了定位样式,就根据父元素来定位,如果父元素没用定位样式,而爷元素用了定位样式,就以爷元素定位,如果爷爷还没有用定位样式?就看看爷爷的父(曾字辈)用了定位样式没有,如果用了就以曾字辈定位,如果一直往上找没有祖先元素用定位样式。那就以body为定位了。

如果绝对定位的元素没有父元素,那么将来trbl是相对于body来定位的;
如果绝对定位的元素有父元素,但是父元素没有定位,那么这个时候trbl还是相对于body来定位的。
如果绝对定位的元素有父元素,而且父元素有定位(非static),那么这个绝对定位的元素偏移是以自己的父元素为基础。
绝对定位的元素会脱离标准流,在页面不会占据位置。