相对定位与绝对定位

  • 相对定位
  • 绝对定位

相对定位

每一个元素都可以看作一个盒子,文档流就是由这些盒子堆砌而成,而每个盒子都在这个文档流中占据了一个位置,如果我们把这个盒子设置成相对定位,那么就可以拿起这个盒子相对于它原来所占据的位置向别的地方移动,如设置 left:50px 就是相对于盒子原来位置向右移动了 50 个像素,我们例子来说明。


我们把 box-2 设置成相对定位并向左移动 60 像素,向下移动 120 像素。

 .box-2{background-color: #00A5FF;position: relative;left: 60px;top:120px;}

则变为下面的情况

从上图我们可以发现 box-2 相对于它原来的位置向下且向右移动了,并且原来的位置留下了一片空白,但是其他的元素并没有占据它,说明元素设置相对定位后,可以相对于其在普通流中的位置偏移,原本所占的空间仍保留。

同时我们从图上可以看出,box-2 移动之后覆盖了其他的元素,这说明当元素被设置相对定位后,将激活 z-index 属性,其层叠级别高于原本的文档流。此时如果给 box-5 也设置 position: relative,那么 box-5 又会覆盖 box-2。

绝对定位

绝对定位的参照物是相对于该元素最近的已定位的祖先元素,如果没有一个祖先元素设置定位,那么参照物是 body。

绝对定位与相对定位的一大不同之处就是,当我们把一个元素设置成绝对定位,那么这个元素将会脱离文档流,漂浮在文档流上方,并且后面的元素将会填充它原来的位置。绝对定位元素根据它的参照物移动自己的位置,而参照物则需要根据它祖先元素的定位设置来确定。我们就用实例说明绝对定位的特点和需要注意的地方。
例如

祖先元素都没有设置定位,元素相对于 body 转移位置。
给 box-2 设置成 position: absolute;

 .box-2{background-color: #00A5FF;position: absolute;}

则出现下面的结果

我们可以看到最后一个 box 存在的位置空了出来,这是因为 box-2 脱离文档流漂浮到文档上方,并且后面的元素填补了上去,说明元素设置绝对定位后脱离文档流,后面的元素将填补它的位置。

接着你可能就会发现 box-3 失踪了,其实它没有失踪,它是在 box-2 下面,就像相对定位一样,当元素被设置绝对定位后,将激活 z-index 属性,其层叠级别高于原本的文档流。

你可能会问了,不是说祖先元素都没有定位时,元素会相对于 body 来改变自己的位置吗,为什么它还是飘在原来的位置,而没有飘到 body 顶头呢,那么请看,我把 left 和 top 属性加上会出现什么样的结果。

如果加上left和top属性

.box-2{background-color: #00A5FF;position: absolute;left: 0;top:0;}   


现在可以看到它与 body 顶头了,因为光设置一个元素的相对定位它只会漂浮到原来位置的上空,并不会漂浮到参照物的文档流最前方,而只有设置了 left、top、right、bottom 这些参数的时候才能激活它相对于参照物移动的效果。

祖先元素 grandpa 设置定位,元素相对于 grandpa 转移位置

 .grandpa{background-color: #55a532;height: 500px;width: 600px;margin: 40px;position: relative;} .box-2{background-color: #00A5FF;position: absolute;left: 20px;top:20px;}   


当祖先元素不止一个设置了定位的时候,选择最近的一个作为参照物。

绝对定位和相对定位的区别相关推荐

  1. CSS中绝对定位和相对定位的区别及作用

    CSS中绝对定位和相对定位的区别及作用 针对定位的区别及使用我整理一些方法 一.绝对定位 二.相对定位 三.绝对定位与相对定位的区别 四.绝对定位与相对定位的使用 结语 针对定位的区别及使用我整理一些 ...

  2. CSS中,position的绝对定位和相对定位的区别

    CSS中,position的绝对定位和相对定位的区别 1.position的四个值:static.relative.absolute.fixed 绝对定位:absolute和fixed统称为绝对定位 ...

  3. 关于绝对定位与相对定位的区别和用法

    Hello大家好,我们这次来详细说下关于绝对定位以及相对定位的知识. 相对定位及其用法 顾名思义相对定位的意思是相对于该控件相对于之前的位置进行偏.相对定位的css样式代码是这样的:position: ...

  4. css中的定位以及绝对定位和相对定位的区别

    一:绝对定位 (position: absolute) 绝对定位:绝对定位是相对于元素最近的已定位的祖先元素(即是设置了绝对定位或者相对定位的祖先元素).如果元素没有已定位的祖先元素,那么它的位置则是 ...

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

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

  6. 绝对定位和相对定位的区别?

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

  7. CSS position中 绝对定位和相对定位的区别以及占位问题

    !DOCTYPE html> <html><head><meta charset="utf-8"><title>CSS中的盒子 ...

  8. CSS中定位(带你实操代码掌握固定定位、绝对定位与相对定位(子绝父相))

    https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 目录 固定定位 绝 ...

  9. css导航栏固定顶部两种情况,及绝对定位,相对定位,固定定位和粘性定位的特性及区别

    绝对定位,相对定位,固定定位和粘性定位的特性及区别,我整理一下放在文章最下面了,不用死记硬背,理解一下就ok,需要的话可以看看. 当导航栏头部没有别的模块时,想要滑动过程中导航栏一直在顶部,有两种写法 ...

最新文章

  1. Android模拟器环境下SD卡内容的管理[转]
  2. 神经网络的分类准确率是100%到底意味着什么?
  3. python2中为什么在进行类定义时最好要加object
  4. OO实现ALV TABLE 七:ALV的选择功能
  5. ITK:创建一个大小Size
  6. 对acm icpc 的随笔——01
  7. php 空函数,PHP 中函数 isset(), empty(), is_null() 的区别
  8. 【Java】计算当n=9时n!的值,并分别输出1!到9!各阶乘的值
  9. ddos常见攻击报文
  10. 分光计游标盘ab两个游标作用_汽车防撞梁的作用究竟有多大?没有后防撞梁的汽车真的不安全吗?...
  11. jq获取页面url后边带的参数
  12. [转] Python的import初探
  13. 自定义头文件之二------hlib.h(慢慢更新)
  14. 【华为 OJ】 字符串分割
  15. JAVA汽车4s店管理系统前后台
  16. 唯物辩证法-矛盾论(普遍性+特殊性+斗争性+同一性)
  17. 最优化理论与凸优化的用处
  18. 在QQ远程协助为什么键盘无法输入?一起来学习!
  19. 电脑系统怎么升级到win10?win7升级win10系统操作教程
  20. 互联网快讯:快手启动“新锐品牌计划;猿辅导、掌门教育布局素质教育

热门文章

  1. android项目实战—博学谷 界面设计
  2. php一句话木马报错,PHP一句话木马安全设置教程
  3. 磊科无线路由器怎么设置密码【图文教程
  4. cesium实现淹没分析(基于polygon)并解决屏闪
  5. shell语法 case/esac
  6. RocketMQ消息存储之刷盘机制(原理篇)
  7. 百度文库中在线阅读器的基本思想
  8. mysql数据库选择option_MySQL: 如何使用myisam-recover-options选项?myisamrecover
  9. WebSocket协议入门:WebSocket API
  10. Altium Designer 9 学习笔记(三)PCB元件排版布线