h5定位模式有哪幾種?
1.靜態定位(static)
靜態定位是所有元素的默認定位方式,當position屬性的取值為static時,可以將元素定位于靜態位置。 所謂靜態位置就是各個元素在HTML文檔流中默認的位置。
白話:網頁中所有元素都是靜態定位,也就是標準流的特性
在靜態定位下,沒有偏移量
PS :沒啥好講的
2.相對定位relative 自戀型
相對定位不脫標(不脫離標準流)
相對定位是將元素相對于它在標準流中的位置進行定位,當position屬性的取值為relative時,可以將元素定位于相對位置。
注意: 1.元素相對定位后,雖然可以用便偏移量改變位置,但是在文檔流中的位置仍保留。
? 2.每次移動的位置,都是以自己的左上角為基點移動
浮動:多個塊級元素一行顯示
相對定位:主要價值就是移動位置
3.絕對定位absolute 拼爹型
絕對定位完全脫標
當position屬性的取值為absolute時,可以將元素的定位模式設置為絕對定位。
父級沒有定位
若所有父元素都沒有定位,以瀏覽器為準對齊(document文檔)。
父級有定位
絕對定位是將元素依據最近的已經定位(絕對、固定或相對定位)的父元素(祖先)進行定位。
子絕父相
非常重要,是我們的口訣
首先,絕對定位是將元素依據最近的已經定位絕對,固定,相對的父元素(祖先)進行定位。
也就是說,子級絕對定位,父級只要是定位(除static靜態定位)就可以,也就是說,子絕父絕也行
那么,為何父級要求時相對定位呢?
子級絕對定位,父級就用相對定位(最優解),因為子級時絕對定位不占位置,就可放在父級的任何位置
因為父盒子在布局時,需要占有位置,因此父級要相對定位
什么是文檔流,普通流,標準流
都是一個意思。
最普通的布局叫標準流
絕對定位的盒子水平/垂直居中
普通的盒子是左右margin 改為 auto就可, 但是對于絕對定位就無效了
水平居中的算法:
? 1.left 50% ,父盒子的一半大小
? 2.再有外邊距負的一半值即可
4.固定定位fixed
它以瀏覽器窗口作為參照物來定義網頁元素。當position屬性的取值為fixed時,即可將元素的定位模式設置為固定定位。
固定定位是一種特殊的絕對定位
疊放次序(z-index)
當對多個元素同時設置定位時,定位元素之間有可能會發生重疊。
1.默認值是0,取值越大,定位元素越居上
2.取值相同,看書寫順序
3.數字沒有單位
4.只有定位才有該屬性,浮動,標準流,靜態定位都沒有該屬性