【问题标题】:css - parent's position is absolute and child's position is relative and vice versacss - 父母的位置是绝对的,孩子的位置是相对的,反之亦然
【发布时间】:2015-01-14 18:14:36
【问题描述】:

我有 div 托管另一个 div。好的,当父母是position:relative 和 孩子是position:absolute。我不明白当

时会发生什么
  1. 父位置是绝对位置,子位置是相对位置
  2. 父位置是绝对位置,子位置是绝对位置
  3. 父母的位置是相对的,孩子的位置是相对的

我使用Why does an absolute position element wrap based on its parent's right bound? 中的JSbin 示例,但问题一般适用于定位概念

【问题讨论】:

  • 第 1 点和第 3 点不是相同吗?
  • 你不知道发生了什么?
  • @Terry:是的,#2 与 OP 理解的情况相同——定位考虑了最近的非静态父对象。

标签: css css-position


【解决方案1】:

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

position: absolute 将该元素定位到其 最近的父元素,position 不是static。静态是一切的默认设置。

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

所以考虑这样的情况:

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

如果grandchild 具有position: absolute,它将相对于浏览器窗口定位自身,因为除了默认的static 之外,没有具有position 的父级。

如果parent 还具有positionrelativeabsolutefixed,则grandchild 将相对于parent 的边界定位自身。

但是,如果 child 也有 relativeabsolutefixed 中的 position,则 grandchild 将相对于 child 的边界定位自身,因为 是最近的父级,position 不是static

总之,relative 影响元素的子元素,而 absolutefixed 影响元素本身及其子元素。

请记住,position: fixed 会绕过所有 relativeabsolute 父级,并且始终相对于浏览器窗口定位自身。

【讨论】:

  • 既然这是公认的答案,让我在这里声明一下,"position: relative 有点奇怪,因为它确实影响了该元素的子元素,而不是它自己的位置。" i> 不全是真的。您可以使用toprightbottomleft 属性更改屏幕上相对元素的位置,这是position 的其他值无法做到的。
  • 是的,但他只是提到了使用几乎没有位置:相对属性而没有设置这4个属性。只是告诉子元素的一种方式……“嘿,你可以根据我做你的措施,如果我只使用position:relative,我的位置不会改变”
  • @Barry T. Smith(或具有足够权限的模组):您能否解决您在回答中错误使用“它”的所有格形式的问题?所有格的“其”不带撇号。 “it's”得到撇号的唯一情况是“it is”或“it has”的缩写。阅读带有令人困惑的语法错误的答案非常令人迷惑。见:its-not-its.info
  • 我有一个 div[position:relative] 和两个孩子 div[position:absolute]。现在 div[position:relative] 的高度为 0px,导致它旁边的元素被放在子元素上
  • 我找到了一个解决方法(这很有效,因为两个孩子的身高相同,我想要第二个包裹另一个)。我只是将第二个孩子设为 position:absolute 并让第一个成为默认值
【解决方案2】:
  • 如果妈妈是相对的,孩子是绝对的:妈妈听她的孩子的话。仿佛是为了保护他。有点..

  • 如果它们都是绝对的:它们彼此无关。他们是陌生人。

  • 如果父级是绝对的,而子级是相对的:它们是绑定的。孩子移动(宽度和高度)朝向或远离他的妈妈。

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

【讨论】:

  • 嗨,Bas,希望你能帮助我让我的孩子们排队。他们拒绝被父母收容。让我概述一下他们的背景:他们是有色人种的孩子,如果他们正在包装的话。我想我需要为它们设置一些边距,因为目前它们根本没有边界。也许他们只需要某种风格?目前,他们不是很活跃并且在过渡中挣扎。他们的祖先都没有这些问题。我只是需要更加灵活吗?
  • 只需给我一个链接,我会尽力帮助你
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-11
  • 1970-01-01
  • 2011-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多