CSS中的絕對定位與相對定位

層級關係爲:
<div ——————————— position:relative; 不是最近的祖先定位元素,不是參照物
<div—————————-沒有設置爲定位元素,不是參照物
<div———————- position:relative 參照物
<div box1
<div box2 ——–position:absolute; top:50px; left:120px;
<div box3
效果圖:

爲改變參照物(橘色框)後的效果
層級關係爲:
<div ——————————— position:relative;最近的祖先定位元素,參照物
<div—————————-沒有設置爲定位元素,不是參照物
<div———————-沒有設置爲定位元素,不是參照物
<div box1
<div box2 ——–position:absolute; top:50px; left:120px;
<div box3
效果圖:

參照物爲最頂級的元素情況
層級關係爲:
<div ———————————沒有設置爲定位元素,不是參照物
<div—————————-沒有設置爲定位元素,不是參照物
<div———————-沒有設置爲定位元素,不是參照物
<div box1
<div box2 ——–position:absolute; top:50px; left:120px;
<div box3
效果圖:

 

僅使用margin屬性佈局絕對定位元素的情況
此情況,margin-bottom 和margin-right的值不再對文檔流中的元素產生影響,因爲該元素已經脫離了文檔流。另外,不管它的祖先元素有沒有定位,都是以文檔流中原來所在的位置上偏移參照物。 
圖9中,使用margin屬性佈局相對定位元素。
層級關係爲:
<div ——————————— position:relative; 不是參照物
<div—————————-沒有設置爲定位元素,不是參照物
<div———————-沒有設置爲定位元素,不是參照物
<div box1
<div box2 ——–position:absolute; margin-top:50px; margin-left:120px;
<div box3
效果圖:

IE6的情況下,box2前面沒有兄弟節點,則margin-left的值會出現雙倍邊距,見圖10。
層級關係爲:
<div ——————————— position:relative; 不是參照物
<div—————————-沒有設置爲定位元素,不是參照物
<div———————-沒有設置爲定位元素,不是參照物
<div box1
<div box2 ——–position:absolute; margin-top:50px; margin-left:60px;
<div box3
效果圖:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章