-
相对定位
相对定位是按照元素自身所在的位置,使用边偏移属性重新定义元素的显示位置,使用相对定位的元素依然是文档中的元素,元素的显示位置和元素所在文档中其他元素相互关联。
在确定相对定位元素位置的时候,首先要确定元素的原始位置,即元素在文档中的位置,然后根据偏移属性中定义的偏移值,确定元素的最终位置。
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
#aa{
width:100px;
height:100px;
background-color:#d5d5d5;
}
#bb{
width:100px;
height:100px;
background-color:#FF0000;
position:relative;
left:40px;
}
</style>
</head>
<body>
<div id="main">
<div id="aa"></div>
<div id="bb"></div>
</div>
</body>
</html>
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
#aa{
width:100px;
height:100px;
background-color:#d5d5d5;
}
#bb{
width:100px;
height:100px;
background-color:#FF0000;
position:relative;
left:40px;
top:50px;
}
#cc{
width:100px;
height:100px;
background-color:#D9E021;
}
</style>
</head>
<body>
<div id="main">
<div id="aa"></div>
<div id="bb"></div>
<div id="cc"></div>
</div>
</body>
</html>
从上图可以看出,使用相对定位的元素按照自身所在的位置进行偏移。
在使用相对定位到时候,相对定位元素保留原来所占有的空间,同时自身按照边偏移属性中定义的属性值进行偏移(有可能覆盖其他元素),
与相对定位元素相邻的元素会将相对定位元素进行排列。
从上图看出,与相对定位元素相邻的元素的显示方式,会保留相对元素原来占有的空间,使用相对定义的元素,由于其显示级别高于
普通元素,所以相对定位元素覆盖了普通页面元素。
2. 绝对定位
绝对定位使元素的位置与文档流无关,因此不占据空间。这一点与相对定位不同,相对定位实际上被看作普通流定位模型的一部分,因为元素的位置相对于它在普通流中的位置。
普通流中其它元素的布局就像绝对定位的元素不存在一样:
绝对定位的元素的位置相对于最近的已定位祖先元素,如果元素没有已定位的祖先元素,那么它的位置相对于最初的包含块。
注意:(1)相对定位是“相对于”元素在文档中的初始位置,而绝对定位是“相对于”最近的已定位祖先元素,如果不存在已定位的祖先元素,那么“相对于”最初的包含块。
(2)因为绝对定位的框与文档流无关,所以它们可以覆盖页面上的其它元素。可以通过设置 z-index 属性来控制这些框的堆放次序。