絕對/固定定位元素偏離位置
在 CSS 定位中,絕對和固定可能會令人困惑,導致未對齊。在這裡,我們解決為什麼這些元素可能無法如預期顯示。
情況 1:相對父級外部的絕對灰框
當元素絕對定位時,其位置為相對於具有非靜態位置的最接近的祖先。在這種情況下,父 .container 的位置為:relative。然而,絕對灰色框位於其容器之外,因為它的頂部設定為自動(預設)。
根據CSS規範,當頂部和底部為自動且高度不為自動時,頂部被設定到靜態位置。如果不是絕對定位,則該位置由元素的位置決定。
在這種情況下,灰色框的靜態位置位於容器外部,因為它之前沒有邊距或填充。因此,灰色框位於文件正文的左上角,而不是容器。
情況2:灰色框不在橘色框之後的左上角
當灰色框移動到第二個位置時,它位於橘色框留下的空間之後。這是因為橘色框具有position:relative,這會建立一個新的堆疊上下文。
堆疊上下文內的元素相對於該上下文中最近定位的祖先進行定位。灰色框位於橙色框之後,因為它是容器堆疊上下文中的下一個定位元素。
結論
理解絕對定位和固定定位的規則是對於準確的元件放置至關重要。透過考慮靜態位置、堆疊上下文以及定位元素和非定位元素之間的關係,開發人員可以確保其元素按預期定位。
以上是為什麼我的絕對/固定位置元素顯示偏離位置?的詳細內容。更多資訊請關注PHP中文網其他相關文章!