position 屬性規定元素的定位類型。
這個屬性定義建立元素佈局所用的定位機制。任何元素都可以定位,不過絕對或固定元素會生成一個塊級框,而不論該元素本身是什麼類型。相對定位元素會相對於它在正常流中的默認位置偏移。
常用的值:
1.relative (相對定位):生成相對定位的元素,相對於其正常位置進行定位。因此,"left:20" 會向元素的 left 位置添加 20 像素。
2.absolute(絕對定位):生成絕對定位的元素,相對於 static 定位以外的第一個父元素進行定位。元素的位置通過 "left", "top", "right" 以及 "bottom" 屬性進行規定。
3.fixed (固定定位):生成絕對定位的元素,相對於瀏覽器窗口進行定位。元素的位置通過 "left", "top", "right" 以及 "bottom" 屬性進行規定。
4.static (默認值):默認值。沒有定位,元素出現在正常的流中(忽略 top, bottom, left, right 或者 z-index 聲明)。
5.inherit:規定應該從父元素繼承 position 屬性的值。
relative
元素會相對於它原來的位置偏移某個距離,元素原來所佔的空間會被保留。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>定位的學習</title>
<style>
#d1{
width:400px;
height:400px;
background: red;
position:relative; /*爲祖先元素設爲相對定位,不設置top等,位置不發生變化*/
}
#d2{
width:200px;
height:200px;
background: yellow;
position:absolute;/*爲子元素設置絕對位置,其位置會相對祖先元素d1變化*/
right:0;
top: 0;
}
#d3{
width:100px;
height:100px;
background: green;
position: absolute;/*位置會相對祖先元素d2變化*/
right:0;
top:0;
}
</style>
</head>
<body>
<div id="d1">
<div id="d2">
<div id="d3">
</div>
</div>
</div>
</body>
</html>
當子元素有倆個或多個時,子元素都會先根據其祖先元素的位置變化。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
#d1{
width: 200px;
height: 200px;
background: red;
position:relative;
}
#d2{
width:100px;
height:100px;
background: yellow;
position: absolute;
top:3px;
left:3px;
}
#d3{
width:50px;
height:50px;
background: green;
position:absolute;
top:103px;
left:103px;
}
</style>
</head>
<body>
<div id="d1">
<div id="d2"></div>
<div id="d3"></div>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>left、right、top、bottom</title>
<style>
#d1{
width:200px;
height:200px;
background: red;
margin:0 auto;
margin-top:200px;
line-height: 200px;
text-align: center;
position: relative;
}
#d2{
width:100px;
height:100px;
position: absolute;
top:50px;
left:-90px;
background: green;
}
#d3{
width:100px;
height:100px;
position: absolute;
top:-80px;
left:50px;
background: blue;
}
#d4{
width:100px;
height:100px;
position: absolute;
top:50px;
right:-90px;
background: yellow;
}
#d5{
width:100px;
height:100px;
position: absolute;
bottom:-90px;
right:50px;
background: pink;
}
</style>
</head>
<body>
<div id="d1">
這是中間的div,祖先元素
<div id="d2"></div>
<div id="d3"></div>
<div id="d4"></div>
<div id="d5"></div>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
#d1{
width:200px;
height: 200px;
background: red;
position: absolute;
left:3px;
top:3px;
z-index:2;
}
#d2{
width:200px;
height:200px;
background: yellow;
position:absolute;
left:50px;
top:50px;
z-index:1;
}
#d3{
width:200px;
height:200px;
background: blue;
position: absolute;
left:90px;
top:90px;
z-index:3;
}
</style>
</head>
<body>
<div id="d1"></div>
<div id="d2"></div>
<div id="d3"></div>
</body>
</html>