css - 父母的位置是绝对的,孩子的位置是相对的,反之亦然

时间:2014-11-17 18:28:42

标签: css css-position

我有另外div的div。好的,我得到的情况是父母是position:relative和 孩子是position:absolute。我不知道

时会发生什么
  1. 父母的位置是绝对的,孩子的位置是相对的
  2. 父母的位置是绝对的,孩子的位置是绝对的
  3. 父母的位置是相对的,孩子的位置是相对的
  4. 我使用JSbin中的Why does an absolute position element wrap based on its parent's right bound?示例,但该问题适用于一般的定位概念

2 个答案:

答案 0 :(得分:20)

Read more about absolute, relative, and fixed position and how they differ here,但我会尝试专门回答你关于人际关系的问题。

position: absolute会将该元素定位到最近的父级,而position不是static 。静态是一切的默认值。

position: relative有点奇怪,因为它确实影响了该元素的孩子,而不是它自己的位置。它只是说它的子元素,“如果你有position: absolute,就把自己定位于我。” position fixedabsolute执行相同的操作(意味着其定位的子项将相对于其边界定位),但这些样式也会影响它们在页面上的位置。具有position: relative的元素看起来不会有任何不同,但它可能是孩子们。

所以考虑这样的情况:

<div class="parent">
     <div class="child">
           <div class="grandchild"></div>
     </div>
</div>

如果grandchildposition: absolute,它会相对于浏览器窗口定位自己,因为没有position的父级而不是默认的static

如果parent也有position relativeabsolutefixedgrandchild将相对于parent的边界定位{1}}。

但是,如果child还有position relativeabsolutefixedgrandchild将相对于child定位position的边界,因为它是距离static不是relative的最近的父级。

总之,absolute会影响元素的子元素,而fixedposition: fixed会影响元素本身及其子元素。

请记住relative绕过所有absolute和{{1}}父母,并始终相对于浏览器窗口定位自己。

答案 1 :(得分:2)

1 - 如果妈妈是亲戚而且孩子是绝对的:妈妈会听她的孩子。仿佛要保护他。有点.. 2 - 如果它们都是绝对的:它们与彼此无关。他们是彼此的陌生人。 3 - 如果父母是绝对的并且是亲戚的:他们受到约束。孩子朝着或远离他的妈妈移动(宽度和高度)。

这总是有点奇怪,有很多关于这个的好文章,但对我来说,它总是只是切换绝对和相对,直到它工作。希望这清楚一点。