求问一个关于position为absolute时的问题_html/css_WEB-ITnose

WBOY
풀어 주다: 2016-06-24 11:22:05
원래의
1175명이 탐색했습니다.


如图 说是absolute时如果没有设置left和top时 它不会占据位置 这里该怎么理解?
我尝试了一下如下的代码:

<style type="text/css">    .z{      position: relative;      background-color: #00c0ef;      margin: 10px 20px 10px 20px;    }    .p{      background-color: #00a65a;      position: absolute;      width: 200px;    }</style><body>  <div class=" z">    zpc    <div class=" p">      zpc    </div>  </div></body>
로그인 후 복사

然后发现实际效果是这样:

也就是说,当没有设置left和top时,内嵌的div并没有被包括在外部的div中 也就是不占位置,但是这个究竟是什么原理?


回复讨论(解决方案)

这时.z的relative写不写都是一样的,因为.p已经不以父元素为参考元素:


However; if an absolute positioned element has no positioned ancestors, it uses the document body, and moves along with page scrolling.

这时.z的relative写不写都是一样的,因为.p已经不以父元素为参考元素:


However; if an absolute positioned element has no positioned ancestors, it uses the document body, and moves along with page scrolling.


.p不是没有设定TRBL吗 应该以父级为参照点 就是.z?

这时.z的relative写不写都是一样的,因为.p已经不以父元素为参考元素:


However; if an absolute positioned element has no positioned ancestors, it uses the document body, and moves along with page scrolling.


还是说我理解错了 如果没有定义TRBL 则直接以body为参照?
如果这样 那div.p怎么会有这样的偏移量呢向左偏了和z一样的10px?


这时.z的relative写不写都是一样的,因为.p已经不以父元素为参考元素:


However; if an absolute positioned element has no positioned ancestors, it uses the document body, and moves along with page scrolling.


还是说我理解错了 如果没有定义TRBL 则直接以body为参照?
如果这样 那div.p怎么会有这样的偏移量呢向左偏了和z一样的10px?
看了半天终于懂了= =

绝对定位position:absolute;说它不占位置,是因为它不再影响后面兄弟元素的定位。

你可以这样理解:未设置定位的元素是二维的,它们之间在同一平面,互相影响,而设置了定位的元素是三维的;
绝对定位相当于它跑到另外一个平面去了,当然对以前的平面不再有影响;
另外,当然 相对定位也可以这样理解,只不过它比较霸道,不但自己跑到另外一个平面去了,原来的平面上的位置还要给它留着。
不知道你看懂了没?如果懂了,恭喜你!那么你肯定也懂了 z-index属性在什么情况下会起作用了

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿