绝对定位和相对定位的区别(详解)


一:绝对定位

position: absolute;绝对定位:绝对定位是相对于元素最近的已定位的祖先元素即是设置了绝对定位或者相对定位的祖先元素)。如果元素没有已定位的祖先元素,那么它的位置则是相对于最初的包含块(body)

绝对定位与文档流无关,所以它们可以覆盖页面上其他的元素,可以通过z-index属性来控制这些层的对方顺序。

#box_relative {
  position: absolute;
  left: 30px;
  top: 20px;
}

 

css绝对定位和相对定位的区别 - Amy - Amy——做一根有思想的芦苇

 
 
二:相对定位

position: relative;相对定位:相对定位是相对于元素在文档中的初始位置

注意,在使用相对定位时,无论是否进行移动,元素仍然占据原来的空间。因此,移动元素会导致它覆盖其它框。


#box_relative {
  position: relative;
  left: 30px;
  top: 20px;
}

css绝对定位和相对定位的区别 - Amy - Amy——做一根有思想的芦苇

注意:position:absolute,float会隐式地改变display的类型(display:none除外)。即是当元素设置position:absolute、float:left、float:right中任意一个时,都会让元素以display:inline-block的方式显示(特点是:可以设置长宽,默认宽度不占满父元素)。这时,即使故意设置display:inline; display:block都是无效的。

但是float在IE6下的双边距bug就是用display:inline; 来解决的。
position:relative不会隐式改变display的类型。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM