绝对/固定定位元素偏离位置
在 CSS 定位中,绝对和固定可能会令人困惑,从而导致未对齐。在这里,我们解决为什么这些元素可能无法按预期显示。
情况 1:相对父级外部的绝对灰框
当元素绝对定位时,其位置为相对于具有非静态位置的最接近的祖先。在这种情况下,父 .container 的位置为:relative。然而,绝对灰色框位于其容器之外,因为它的顶部设置为自动(默认)。
根据CSS规范,当顶部和底部为自动且高度不为自动时,顶部被设置到静态位置。如果不是绝对定位,则该位置由元素的位置决定。
在这种情况下,灰色框的静态位置位于容器外部,因为它之前没有边距或填充。因此,灰色框位于文档正文的左上角,而不是容器。
情况 2:灰色框不在橙色框之后的左上角
当灰色框移动到第二个位置时,它位于橙色框留下的空间之后。这是因为橙色框具有position:relative,这会创建一个新的堆叠上下文。
堆叠上下文内的元素相对于该上下文中最近定位的祖先进行定位。灰色框位于橙色框之后,因为它是容器堆叠上下文中的下一个定位元素。
结论
理解绝对定位和固定定位的规则是对于准确的元件放置至关重要。通过考虑静态位置、堆叠上下文以及定位元素和非定位元素之间的关系,开发人员可以确保其元素按预期定位。
以上是为什么我的绝对/固定位置元素显示偏离位置?的详细内容。更多信息请关注PHP中文网其他相关文章!