我有另外div的div。好的,我得到的情况是父母是position:relative
和
孩子是position:absolute
。我不知道
我使用JSbin中的Why does an absolute position element wrap based on its parent's right bound?示例,但该问题适用于一般的定位概念
答案 0 :(得分:20)
Read more about absolute, relative, and fixed position and how they differ here,但我会尝试专门回答你关于人际关系的问题。
position: absolute
会将该元素定位到最近的父级,而position
不是static
。静态是一切的默认值。
position: relative
有点奇怪,因为它确实影响了该元素的孩子,而不是它自己的位置。它只是说它的子元素,“如果你有position: absolute
,就把自己定位于我。” position
fixed
或absolute
执行相同的操作(意味着其定位的子项将相对于其边界定位),但这些样式也会影响它们在页面上的位置。具有position: relative
的元素看起来不会有任何不同,但它可能是孩子们。
所以考虑这样的情况:
<div class="parent">
<div class="child">
<div class="grandchild"></div>
</div>
</div>
如果grandchild
有position: absolute
,它会相对于浏览器窗口定位自己,因为没有position
的父级而不是默认的static
。
如果parent
也有position
relative
,absolute
或fixed
,grandchild
将相对于parent
的边界定位{1}}。
但是,如果child
还有position
relative
,absolute
或fixed
,grandchild
将相对于child
定位position
的边界,因为它是距离static
不是relative
的最近的父级。
总之,absolute
会影响元素的子元素,而fixed
和position: fixed
会影响元素本身及其子元素。
请记住relative
绕过所有absolute
和{{1}}父母,并始终相对于浏览器窗口定位自己。
答案 1 :(得分:2)
1 - 如果妈妈是亲戚而且孩子是绝对的:妈妈会听她的孩子。仿佛要保护他。有点.. 2 - 如果它们都是绝对的:它们与彼此无关。他们是彼此的陌生人。 3 - 如果父母是绝对的并且是亲戚的:他们受到约束。孩子朝着或远离他的妈妈移动(宽度和高度)。
这总是有点奇怪,有很多关于这个的好文章,但对我来说,它总是只是切换绝对和相对,直到它工作。希望这清楚一点。