错位绝对/固定元素之谜:了解位置和上下文
在 CSS 布局中,了解绝对或固定元素的行为 -定位元素至关重要。然而,您在这方面遇到了问题,我们在这里解释一下其背后的原因。让我们深入了解具体细节:
情况 1:相对父级外部的灰色框
您的期望是将灰色框放置在容器的左上角,但它最终被放置在外面。原因在于您应用的属性:
- 灰色框的位置:绝对。这使得它的位置独立于它的父元素。
- 但是,它的父元素,容器,有position:relative。这将为灰色框创建一个新的定位上下文。
- 在此定位上下文中,灰色框的 top: 0 和 left: 0 值相对于其当前位置的父级左上角。
- 但请记住,容器的上边距为 100px,由橙色框的 top: 100px 属性指定。这会在父级的左上角与其实际视觉位置之间产生间隙,导致灰色框位于可见区域之外。
情况 2:灰色框被橙色框取代
在第二种情况下,当您将灰色框移动为容器内的第二个子元素时,它似乎跟随橙色框向右移动 盒子。这是由于以下原因:
- 橙色框的position:relative建立了一个新的定位上下文。
- 在此上下文中,灰色框的top: 0和left: 0值是相对于橙色框的左上角。
- 橙色框的 left: 100px 属性将橙色框推向右,因此,灰色框跟随此位移,看起来向右移动。
以上是为什么我的绝对/固定定位元素错位?的详细内容。更多信息请关注PHP中文网其他相关文章!