relative和absolute運用
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>相對參照元素進行定位</title>
<style type="text/css">
div{border:2px red solid;}
#box1,#box2,h1{
? ? margin-left:0px;
? ? margin-top:0px;
}
#box1{
? ? width:200px;
? ? height:200px;
? ? position:relative;
? ? ? ? ??
}
#box2{
? position:absolute;
top:20px;
left:30px;
? ? ? ? ??
}
/*下面是任務部分*/
#box3{
? ? height:200px;
? ? width:200px;
? ? position:relative;
? ??
? ??
}
?#box4{
? ? ?width:99%;
? ? ?position:absolute;
? ? ?bottom:0;
? ? ?left:0px;
?} ??
?
</style>
</head>
<body>
<div id="box1">
<div id="box2">相對參照元素進行定位</div>
</div>
<h1>下面是任務部分</h1>
<div id="box3">
? ? <img src="http://img1.sycdn.imooc.com//541a7d8a00018cf102000200.jpg">
? ? <div id="box4">當我還是三年級的學生時是一個害羞的小女生。</div>
</div>
</body>
</html>為什么box3要用relative,box4相對于父級絕對定位嗎,那現在box3已經是box4的父級了啊,為什么還要用relative
2018-04-19
首先明確絕對定位:想為元素設置層模型中的絕對定位,需要設置position:absolute(表示絕對定位),這條語句的作用將元素從文檔流中拖出來,然后使用left、right、top、bottom屬性相對于其最接近的一個具有定位屬性的父包含塊進行絕對定位。如果不存在這樣的包含塊,則相對于body元素,即相對于瀏覽器窗口。
這里“定位屬性”重點,如果box3不加position:relative使box3具有定位屬性的話,那么box4的絕對定位就會相對于body元素去定位了。
然后我又想為什么box3非要用relative相對定位呢?用absolute絕對定位行不行?經過測試發現也可以。也能夠實現box4相對于box3的相對定位。
那么我又考慮到,用relative對box3進行相對定位一定是有原因的。經過研究我發現,如果用absolute對box3進行相對定位的話,box3會從文檔流中脫離出來,造成后面的內容混亂,box3后面的內容跑到box3前面(我在box3前后加了一大段文字用來測試),因為absolute決定定位的特性就是會脫離文檔流。
而relative相對定位的一大特性就是“初始位置保持不變”,不會造成后面內容的混亂。
說的有點亂,你可以把我代碼中box3那段relative刪除,再換成absolute分別看一下效果就了解了,哪里有問題我們繼續討論
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>相對參照元素進行定位</title>
<style type="text/css">
div{border:2px red solid;}
#box1{
? ? width:200px;
? ? height:200px;
? ? position:relative;
? ? ? ? ??
}
#box2{
? position:absolute;
top:20px;
left:30px;
? ? ? ? ??
}
/*下面是任務部分*/
#box3{
? ? width:200px;
? ? height:200px;
? ? position:relative;? ? ? ?
}
#box4{
? ? width:99%;
? position:absolute;
bottom:0;
? ??
}
</style>
</head>
<body>
<div id="box1">
<div id="box2">相對參照元素進行定位</div>
</div>
<h1>下面是任務部分</h1>
1234123412341234123412341234132
<div id="box3">
? ? <img src="http://img1.sycdn.imooc.com//541a7d8a00018cf102000200.jpg">
? ? <div id="box4">當我還是三年級的學生時是一個害羞的小女生。</div>
</div>
asdfasdfasdfasdfasdfasdfasdfa
</body>
</html>
2018-04-17
一父一子
2018-04-17
子絕父相,兒子絕對定位,父親就要相對定位,不然兒子就會參照瀏覽器進行定位
2018-04-17
box3是父級,所以要設置一個參照定位position:relative,意思就是有人要參照你的定位了