div+css布局中absolute与relative的区别

s## 介于最近在写demo时这方面又开始云里雾里,概念混淆,看了51CTO上的一篇分析豁然开朗,决定做点总结。

常用的定位可分为以下四种:
1.static: 元素的定位默认值。元素出现在正常的文档流中。top, left, right, bottom,z-index声明无效,言意上对于static的元素是没有任何效果。

2.relative: 相对定位。通过top, left, right, bottom相对于其正常位置进行定位。

3.absolute: 绝对定位。相对于除static定位以外(即relative, absolute, fixed)的第一个父元素进行定位。可通过top, left, right, bottom进行定位。

4.fixed: 绝对定位,相对于浏览器窗口进行定位,可通过top, left, right, bottom进行定位。

relative:

定位为relative的元素出现在正常的文本流中,即其在文本流中的位置依然存在。如图:

div+css布局中absolute与relative的区别_第1张图片
Paste_Image.png

absolute:

定位absolute的元素脱离在正常文本流,但与relative的区别在于其在文本流中的位置不存在,如图:

div+css布局中absolute与relative的区别_第2张图片
Paste_Image.png

relative与absolute的主要区别:

  • relative定位的层总是相对于其最近的父元素,无论父元素采用什么定位方式。
  • absolute定位的层总是相对于最近的除了static定位的父层元素进行定位。如果最近的父元素层中没有绝对或者相对定位,则将其相对于body进行定位,如图:
div+css布局中absolute与relative的区别_第3张图片
Paste_Image.png

你可能感兴趣的:(div+css布局中absolute与relative的区别)