在CSS中,通過position屬性定義元素的定位模式,語法如下:
定位模式是有不同分類的,在不同情況下,我們用到不同的定位模式。
值
語義
static
靜態定位
relative
相對定位
Absolute
絕對定位
Fixed
固定定位
①.靜態定位(static)靜態定位是元素的默認定位方式,無定位的意思。它相當於 border 裡面的none, 不要定位的時候用。
靜態定位 按照標準流特性擺放位置,它沒有邊偏移。
靜態定位在布局時我們幾乎不用的
②.相對定位(relative)
相對定位是元素相對於它原來在標準流中的位置來說的。(自戀型)
相對定位的特點:(務必記住)
相對於 自己原來在標準流中位置來移動的
原來在標準流的區域繼續佔有,後面的盒子仍然以標準流的方式對待它。
③.絕對定位(absolute)
絕對定位是元素以帶有定位的父級元素來移動位置 (拼爹型)
1. 完全脫標 —— 完全不佔位置;
2. 父元素沒有定位,則以瀏覽器為準定位(Document 文檔)。
父元素要有定位
將元素依據最近的已經定位(絕對、固定或相對定位)的父元素(祖先)進行定位。
絕對定位的特點:(務必記住)
絕對是以帶有定位的父級元素來移動位置 (拼爹型) 如果父級都沒有定位,則以瀏覽器文檔為準移動位置
不保留原來的位置,完全是脫標的。
因為絕對定位的盒子是拼爹的,所以要和父級搭配一起來使用。
定位口訣 —— 子絕父相
剛才咱們說過,絕對定位,要和帶有定位的父級搭配使用,那麼父級要用什麼定位呢?
子絕父相 —— 子級是絕對定位,父級要用相對定位。
子絕父相是使用絕對定位的口訣,要牢牢記住!
總結:
由於子元素不佔據位置,所以我們使用絕對定位;
由於父元素佔據位置,不能響應後面元素的正常顯示,我們使用相對定位。
分析:
1. 方向箭頭疊加在其他圖片上方,應該使用絕對定位,因為絕對定位完全脫標,完全不佔位置。
2. 父級盒子應該使用相對定位,因為相對定位不脫標,後續盒子仍然以標準流的方式對待它。
如果父級盒子也使用絕對定位,會完全脫標,那麼下方的廣告盒子會上移,這顯然不是我們想要的。
結論:
父級要佔有位置,子級要任意擺放,這就是子絕父相的由來。
④.固定定位(fixed)
固定定位是絕對定位的一種特殊形式: (認死理型)
如果說絕對定位是一個矩形,那麼,固定定位就類似於正方形。
1. 完全脫標 —— 完全不佔位置;
2. 只認瀏覽器的可視窗口 —— 瀏覽器可視窗口 + 邊偏移屬性 來設置元素的位置;
跟父元素沒有任何關係;單獨使用的
不隨滾動條滾動。
提示:
IE 6 等低版本瀏覽器不支持固定定位。