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

    技术2024-12-20  4

    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元素,例如某一个活动层的关闭按钮等

    最新回复(0)