绝对定位遵循什么等级

时间:2015-11-26 09:21:26

标签: css

当父母不是绝对的或相对的时,我在理解绝对定位时遇到问题。我理解绝对定位将基于相对于它的父亲的偏移来定位,这可以是相对的或绝对的。
If the parent is not absolute or relative? Will it position itself to the nearest absolute or relative element. Or will it position itself relative to the body?

当父亲是亲戚或绝对时,我没有问题。我有一个问题,即如果父母是静态的,将会发生什么。绝对元素将如何发挥作用

2 个答案:

答案 0 :(得分:0)

将元素指定为absolute基本上将其从" normal"中取出。网页的流程。

这实质上意味着可以将绝对定位的元素放置在页面的任何位置,方法是指示它们根据最近的relative父级位于某些点。

默认情况下,大多数元素都会继承static的位置,这意味着它们会在页面上形成,因为它们应该"" (基本上意思是,他们一个接一个地取决于他们指定的位置)。在CSS Tricks中引用Chris Coyier,位置relative几乎意味着相对于自身",所以仅仅指定一个元素是相对的,基本上与将它留作static一样,除非你以其他方式指示自己的位置。

请记住,如果您将元素设置为absolute,它将查找它最接近的相对父级 - 它将逐渐向上看越来越高的DOM树,直到找到一个,有时可以如果没有其他人被定义为<html>,则为relative标记。

以下链接比我更好地解释了这个主题,请查看:https://css-tricks.com/absolute-relative-fixed-positioining-how-do-they-differ/

答案 1 :(得分:0)

这里定义的是:http://www.w3.org/TR/css3-positioning/#def-cb

该参考文献的相关简介:

  

对于fixed,absolute,center和page,它定义如下:

     

如果元素具有'position:absolute',则包含块为   由最近的祖先建立,其位置不是静态的,   以下列方式:   1.在祖先是块级的情况下,包含块由祖先的填充边缘形成。   2.在祖先是内联级别的情况下,包含块取决于祖先的方向属性...

  

如果没有这样的祖先,则包含块是初始值   包含块

此处有更多详情:http://www.w3.org/TR/CSS2/visudet.html#containing-block-details

所以,要直接回答你的问题 - 包含的块是由最近的祖先建立的,其位置不是静态的。如果没有这样的祖先,则包含块是初始包含块。这恰好恰好是html。这就是为什么许多开发者选择向position: relative提供body以避免与视口混淆的原因。