了解絕對定位邊距自動問題
當將“position:absolute”應用於具有“margin-left:auto”和“的元素時margin-right: auto”,您可能會注意到邊距似乎沒有效果。此行為不同於“位置:相對”,其中邊距按預期工作。為了理解這種差異,讓我們更深入地研究底層機制。
當一個元素被絕對定位時,它就會從文件的正常流程中刪除。這意味著它不再與其相鄰元素交互,並且其大小僅由其顯式尺寸或其容器的大小決定。因此,如果未明確設定元素的寬度,則瀏覽器計算的值為“auto”,在大多數情況下為 0。
在這種情況下,應用「margin-left: auto」和「margin-right: auto」嘗試透過將左右邊距設定為元素寬度的一半來在元素周圍建立空間。但是,由於元素的計算寬度為 0,因此計算出的邊距值也變成 0。這就是為什麼邊距似乎沒有效果。
相反,當使用「position:relative」時,元素仍保持在文件的正常流程中。它的大小由它的內容和它在流中佔據的空間決定。當應用「margin-left: auto」和「margin-right: auto」時,邊距是根據元素的實際寬度計算的,在這種情況下,實際寬度不為零。因此,邊距被正確應用,導致元素在其包含元素內居中。
要讓絕對定位的元素居中,您可以指定其寬度和高度,然後使用“position:absolute;left:50” %; 變換: 翻譯(-50%, -50%);"將其置於容器的中心。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3