css中,绝对定位和相对定位是什么意思?通常都是怎么用?

html-css013

css中,绝对定位和相对定位是什么意思?通常都是怎么用?,第1张

绝对定位是相对于父标签决定位置,一般用于相对定位标签里面,JS特效经常用到。

相对定位是相对于上一个相对定位的。一般用于浮动定位标签里面,一般跟绝对定位配合使用。

浮动定位才是常用的。

看例子:

<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采用了相对定位,内层采用了绝对定位。 为什么这样做呢? 这样的好处