relative定位為什么不能讓元素完美居中?

relative定位為什么不能讓元素完美居中?

為什么relative定位無法讓元素完美居中?

css布局中,很多開發者嘗試使用position: relative;結合margin: auto;來實現元素居中,卻發現僅能水平居中,垂直居中失效。本文將解釋其原因。

問題在于position: relative;和position: absolute;或position: fixed;的定位機制差異。

absolute和fixed定位的元素脫離文檔流,其top、right、bottom、left屬性相對于其包含塊(containing block)進行定位。若未設置包含塊的position屬性,包含塊默認為

。因此,margin: auto;可以實現水平和垂直居中

而relative定位的元素仍在文檔流中,其top、right、bottom、left屬性是相對于自身位置偏移。left: 0; right: 0; top: 0; bottom: 0;并不會改變元素在父容器中的位置,僅影響其內部內容的相對位置。margin: auto;在這種情況下只對水平居中有效。垂直居中需要其他方法,例如Flexbox或grid布局

? 版權聲明
THE END
喜歡就支持一下吧
點贊15 分享