位置错误的元素:了解绝对和固定定位
CSS 中的绝对和固定定位允许将元素精确放置在文档或视口中。然而,有时元素可能不会出现在您期望的位置。这通常是由于对这些定位方法的工作原理的误解造成的。
静态定位的问题
当元素静态定位(默认)时,它会流动与文档的其余部分一起,从周围的元素中获取其位置。在给定的示例中,灰盒 div 是绝对定位的。然而,容器具有相对位置,而不是绝对或固定位置。这意味着灰盒仍然受文档流的影响,并将相对于容器的静态位置进行定位。
绝对和固定定位
绝对定位从文档流中删除一个元素,并将其相对于其最近的定位祖先进行定位。如果没有定位的祖先,它将相对于文档本身定位。固定定位与绝对定位类似,但它相对于视口而不是其祖先定位元素。
在第一个示例中,灰盒是绝对定位的,但其容器是静态定位的。如前所述,这意味着灰盒将相对于容器的静态位置定位,该静态位置不是左上角。
在第二个示例中,灰盒被移动到容器之前橙色盒子。这导致橙色盒子占据了灰色盒子本来占据的空间。因此,灰盒出现在橙色盒之后。
纠正问题
要正确定位灰盒,容器必须绝对定位或固定。这将允许灰盒相对于容器的绝对或固定位置而不是其静态位置进行定位。
这是更正的代码:
.container { background: lightblue; position: absolute; }
现在,灰色-框应按预期出现在容器的左上角。
以上是为什么我的绝对定位元素出现在错误的位置?的详细内容。更多信息请关注PHP中文网其他相关文章!