CSS里面position:relative与position:absolute 区别

来源:互联网 发布:刻录软件哪个好用 编辑:程序博客网 时间:2024/05/16 07:19
position:absolute这个是绝对定位;是相对于浏览器的定位。比如:position:absolute;left:20px;top:80px; 这个容器始终位于距离浏览器左20px,距离浏览器上80px的这个位置。position:relative是相对定位,是相对于前面的容器定位的。这个时候不能用top left在定位。应该用margin。比如:<div class="1"></div><div class="2"></div>当1固定了位置。1的样式float:left;width:100px; height:800px;2的样式为float:left; position:relative;margin-left:20px;width:50px;2的位置在1的右边,距离120px

 

position:absolute这个是绝对定位;它不会随着窗口大小变化,只是固定在一个特定的坐标轴上面;position:relative 这是相对定位啊!和上面的相反,它可以随窗口大小变化。但大小仍然不会变。
要是你设置成width:100%;height:100%;这样就会随着窗口变大变小。。。 

之前老弄不明白,只能凭借一点短期内“虐出来的经验”制作需要的效果,后来仔细研究了一下Hutia的XScroller,并且仔细看了文档,才知道这个position属性其实是指本体对上级的定位。如果这么理解,就好办了。

默认的属性值都是static,静态。就不用多说了。最关键的是
relative(相对)以及absolute(绝对)。
往往我们如果是COPY别人的代码,会把absolute属性与left、top配合起来制作相关的“悬浮层”效果。然而有时候我们需要针对某一个容器的悬浮效果,而不是针对窗口的。这时候通过高度、宽度的计算不但麻烦,而且几乎无法完美实现效果。我一开始也无能为力,后来发现只要把其上一级的样式属性position设置为relative就可以了。

也就是说,position的属性值的效果,直接受其容器样式中position属性值影响。
例如如下A-B的嵌套结构

<div id="A">
 <div id="B">
 </div>
</div>

当A的position为relative时,B的position为absolute才有效。这时候left:0、top:0就不再针对窗口文档,而是针对id为A的这个div了。

这样在开发一些基于B/S应用程序的时候,就能很方便的添加一些UI元素,例如某一个活动层的关闭按钮等

原创粉丝点击