postion 屬性定義了一個(gè)元素在頁面布局中的位置以及對(duì)周圍元素的影響。該屬性共有5個(gè)值:
position: absolute
position: relative
position: fixed
position: static
position: inherit
本文主要詳細(xì)討論 position 屬性的前三個(gè)值,首先大概講解下后兩個(gè)值:
static
static 為 position 屬性的默認(rèn)值,static 元素會(huì)遵循正常的文檔流,且會(huì)忽略 top,bottom,left,right 等屬性。
inherit
inherit 值如同其他 css 屬性的 inherit 值,即繼承父元素的 position 值。
absolute
absolute 元素將會(huì)脫離正常的文檔流,所以 其周圍的元素將會(huì)忽略它的存在。如同 absolute 元素的 display 屬性被設(shè)為了 none 一樣。此時(shí),我們可以使用 top,bottom,left,right 等屬性對(duì) absolute 元素進(jìn)行絕對(duì)定位。一般情況下定義兩個(gè)屬性,top 或 bottom,left 或 right。
這個(gè)絕對(duì)定位需要稍微理解下,因?yàn)檫@里容易與 relative 產(chǎn)生混淆。
例如,當(dāng)對(duì) absolute 元素添加 left:10px 定位后,這個(gè) left 究竟是對(duì)哪個(gè)元素而言呢?其實(shí),此時(shí)將會(huì)往上查找 absolute 元素的第一個(gè)父元素,如果該父元素的 position 值存在(且不為 static),那么這個(gè) left:10px 就是根據(jù)該父元素進(jìn)行的定位,否則將會(huì)繼續(xù)查找該父元素的父元素,一直追溯到某個(gè)父元素具備不為 static 的 position 值為止,如果不存在滿足條件的父元素,則會(huì)根據(jù)最外層的 window 進(jìn)行定位。
//直接忽略 absolute 元素的存在
relative
relative 元素遵循正常的文檔流,所以周圍元素不會(huì)忽略它的存在,relative 元素同樣支持 top,bottom,left,right 等屬性。當(dāng)我們使用 top,bottom,left,right等屬性對(duì) relative 元素進(jìn)行相對(duì)定位時(shí)的效果有點(diǎn)類似于 margin 屬性達(dá)到的效果,但是區(qū)別在于, relative 元素周圍的元素將會(huì)忽略 relative 元素的移動(dòng)。我們注意,當(dāng) relative 元素未使用定位屬性進(jìn)行相對(duì)定位時(shí),它不會(huì)被周圍的元素忽略,但利用定位屬性進(jìn)行定位后,周圍的元素會(huì)忽略 relative 元素的移動(dòng),它們會(huì)認(rèn)為 relative 元素仍然在原來的位置,并未進(jìn)行移動(dòng),我們用個(gè)例子來說明:
新聞熱點(diǎn)
疑難解答
圖片精選