相对定位是相对于上一个相对定位的。一般用于浮动定位标签里面,一般跟绝对定位配合使用。
浮动定位才是常用的。
看例子:
<body>
<div
id="bq1"
style="
position:absolute
left:10px
top:10px
"></div>
<div
id="bq2"
style="
position:relative"></div>
<div
id="bq3"
style="
position:relative">
<div
id="bq4"
style="
position:absolute
left:10px
top:10px"></div>
</div>
</body>
以下只说id名代表div
绝对定位:position:absolute
如果bq1(绝对定位)外面没有div等父标签,bq1会以body为父标签。左边距距body
10像素,上边距距body
10像素。
如果bq4(绝对定位)在bq3(相对定位)里面,左边距距bq3
10像素,上边距距bq3
10像素。
相对定位:position:relative
bq2(相对定位)总是相对于前面的同级标签为基准标签(bq1)。
bq3以bq2为基准标签。
有几个方法:一种:
div1设置为position:relative,
div2设置为position:absolute,
此时的div2就相对于div1进行基准定位了。。。
因为绝对定位position:absolute,不在标准流中,所以内联元素不知到他的位置,会跑到他的下面去。。。这里就看你需要什么样式了,如果简单的可以用padding和margin配合完成,让内联元素出来。。但屏幕缩小放大就变形了。。
二种,
就是你改写一下你的HTML
<div
id="div1">
<div
id="div2"></div>
</div>
把div2放到div1里面,里面设置为float,再position:relative进行浮动后地位,
这种方法比第一种好,这里看你的需求了///
在谈论如何使用时。我们先来看看CSS对position属性的相关定义:static:无特殊定位,对象遵循正常文档流。top,right,bottom,left等属性不会被应用。
relative:对象遵循正常文档流,但将依据top,right,bottom,left等属性在正常文档流中偏移位置。而其层叠通过z-index属性定义。
absolute:对象脱离正常文档流,使用top,right,bottom,left等属性进行绝对定位。而其层叠通过z-index属性定义。
什么是文档流? 文档流是将窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素,即为文档流。只有三种情况会使得元素脱离文档流,分别是:浮动、绝对定位和相对定位。
在实际开发当中,通常都是我们相对定位搭配绝对定位使用。例如下面伪代码
<div class="content">
<div id="content_body1"> //图片代码块
</div>
</div>
CSS
.content{
clear: left
margin: 0 auto
position: relative
width: 990px
}
.content_body1{
overflow: hidden
position: absolute
}
这里用两个div包了一个图片段代码。外层div采用了相对定位,内层采用了绝对定位。 为什么这样做呢? 这样的好处