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

WBOY
发布: 2016-06-24 11:22:05
原创
1163 人浏览过


如图 说是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
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!