亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于絕對定位排列的問題

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>absolute樣式</title>

<style type="text/css">

#ab{

? ? position:absolute;

}

#abc{

position:absolute;

left:20px;

}

#abcd{

position:absolute;

left:100px;

}

</style>

</head>


<body>

<div id="ab">son</div>

<div id="abc">father</div>

<div id="abcd">grandfather</div>

</body>

</html>

為什么這三個<div>顯示在同一行上?

正在回答

2 回答

我們先來看一下絕對定位的含義:

層模型--絕對定位

如果想為元素設置層模型中的絕對定位,需要設置position:absolute(表示絕對定位),這條語句的作用將元素從文檔流中拖出來,然后使用left、right、top、bottom屬性相對于其最接近的一個具有定位屬性的父包含塊進行絕對定位。如果不存在這樣的包含塊,則相對于body元素,即相對于瀏覽器窗口。

你設置這三個div沒有設定一個具有定位屬性的父元素,所以,他們就默認的是body元素,即瀏覽器窗口。

你設置了如下的css樣式

#ab{

? ? position:absolute;

}

#abc{

position:absolute;

left:20px;

}

#abcd{

position:absolute;

left:100px;

}

那么顯示的結果就是三個元素都會在一行,原因很簡單,絕對定位的元素的位置相對于最近的已定位祖先元素,如果元素沒有已定位的祖先元素,那么它的位置相對于最初的包含塊。就是說abc這個div會向右移動20px abcd會向右移動100px,但是同時絕對定位使元素的位置與文檔流無關,因此不占據空間,所以三個div還是會顯示在同一行。

0 回復 有任何疑惑可以回復我~
#1

_Jack_Han_

請問什么是文檔流?什么是不占據空間?
2016-04-07 回復 有任何疑惑可以回復我~
#2

qq_徵羽kid 回復 _Jack_Han_

文檔流是文檔中可顯示對象在排列時所占用的位置。文檔流簡述將窗體自上而下分成一行行, 并在每行中按從左至右的順序排放元素,即為文檔流。不占據空間就是它脫離了原來的空間位置,哎呀,這個我也不是很理解誒。
2016-04-08 回復 有任何疑惑可以回復我~
#3

qq_一生之久_0 提問者

非常感謝!
2016-04-08 回復 有任何疑惑可以回復我~
#4

_Jack_Han_ 回復 qq_徵羽kid

謝謝!
2016-04-08 回復 有任何疑惑可以回復我~
#5

qq_徵羽kid 回復 _Jack_Han_

嘿嘿,互相學習,大家一起加油,共同進步。
2016-04-08 回復 有任何疑惑可以回復我~
#6

qq_徵羽kid 回復 qq_一生之久_0 提問者

;-),互相學習,一起加油,共同進步啦。
2016-04-08 回復 有任何疑惑可以回復我~
查看3條回復

相對定位:設置為相對定位的元素框會偏移某個距離。元素仍然保持其未定位前的形狀,它原本所占的空間仍保留。

?.relative{?position: relative;? background:purple;??width:50px;??height: 50px;??left: 80px;?}?

這個框會出現在跟原來的位置向右80px的地方,原來的位置為空,

如果position: relative改成position: absolute,

則這個框的原來空間會被下面的框所覆蓋。

經對定位:絕對定位使元素的位置與文檔流無關,因此不占據空間。這一點與相對定位不同,相對定位實際上被看作普通流定位模型的一部分,因為元素的位置相對于它在普通流中的位置。

.box{??width:300px;??height: 300px;??margin: 0 auto;??border: 1px solid orange;??position: relative;?}?

.relative{??position:absolute;??background:purple;??width:50px;??height: 50px;??left: 80px;}

box是relative的父元素,標識為relative 的框會出現在向右 80px的地方,

但是如果父元素box沒有定位屬性,它則會相對body進行定位,位置會大變,會脫離box框。


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
初識HTML(5)+CSS(3)-升級版
  • 參與學習       1228743    人
  • 解答問題       19080    個

HTML(5)+CSS(3)基礎教程8小時帶領大家步步深入學習標簽用法和意義

進入課程

關于絕對定位排列的問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號