效果图如下 符合文档流的基本顺序:
第二种情况 取消注释 position:relative
效果图如下:发现div根据设置的left和top发生了偏移 但是span 还是为什么span的位置这么奇怪呢?
因为设置 relative 并不会脱离文档流.举例例子:
设置relative你可以想象一下,这个div是个飞机,从停机坪飞起来,飞到别的地方去了。但是。。这个停机坪还是要给他留着的,否则飞不回来了
虽然div 设置了left和top的偏移,但是它原来的位置还是进行了保留.等待它飞回的那一刻.而span则保持原来的状态没有发生变化.
第三种情况:设置position : absolute
效果图如下: 这里设置absolute ,发现span 跑到文档的开始位置了.
因为设置absolute 会使div脱离文档流.两个保持这样的位置还有就是div 设置top和left的偏移.
| | |
----|------|-----|
static | 默认。位置设置为 static 的元素,它始终会处于页面流给予的位置(static 元素会忽略任何 top、bottom、left 或 right 声明)。|
relative| 位置被设置为 relative 的元素,可将其移至相对于其正常位置的地方,因此 "left:20" 会将元素移至元素正常位置左边 20 个像素的位置。|
absolute| 位置设置为 absolute 的元素,可定位于相对于包含它的元素的指定坐标。此元素的位置可通过 "left"、"top"、"right" 以及 "bottom" 属性来规定。 |
fixed|位置被设置为 fixed 的元素,可定位于相对于浏览器窗口的指定坐标。此元素的位置可通过 "left"、"top"、"right" 以及"bottom" 属性来规定。不论窗口滚动与否,元素都会留在那个位置。工作于 IE7(strict 模式)。|
另外:
absolute是绝对定位;而relative是相对定位;
解释:
绝对定位就是相对于父元素的定位,不受父元素内其他子元素的影响;
而相对定位是相对于同级元素的定位,也就是上一个同级元素。
区别
区别是指两个或两个以上的事物间的不同,一般是在存在共同点的情况下说有"区别",世间万物,不可能任何东西都是一样的,世上没有两片一样的叶子。当两种相似的事物作比较时,它们的不同点便是区别。
在CSS中,“position: relative”是设置定位类型为相对定位,它可以配合“top”、“bottom”、“left”、“right”这4个偏移量来实现相对它所属父元素的相对定位。
position属性规定元素的定位类型,这个属性定义建立元素布局所用的定位机制。任何元素都可以定位,不过绝对或固定元素会生成一个块级框,而不论该元素本身是什么类型。相对定位元素会相对于它在正常流中的默认位置偏移。
relative属性相对比较简单,它是相对它所属父元素来进行偏移的,可以通过“top”、“bottom”、“left”、“right”4个偏移属性进行定位。
扩展资料:
position属性的其它定位类型:
1、absolute
绝对定位,依据父元素中最近设置为relative定位类型的元素进行偏移。
2. fixed
fixed是特殊的absolute,即fixed总是以body为定位对象的,按照浏览器的窗口进行定位。
3. static
position的默认值,一般不设置position属性时,会按照正常的文档流进行排列。
参考资料来源:百度百科-position (定位元素)