当父母不是绝对的或相对的时,我在理解绝对定位时遇到问题。我理解绝对定位将基于相对于它的父亲的偏移来定位,这可以是相对的或绝对的。
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?
当父亲是亲戚或绝对时,我没有问题。我有一个问题,即如果父母是静态的,将会发生什么。绝对元素将如何发挥作用
答案 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
以避免与视口混淆的原因。