绝对定位

position:absolute

设置为绝对定位的元素框将会从文档流中完全删除,并相对于其包含块(父元素)定位,包含块可能是文档中的另一个元素或者是初始包含块(body)元素

绝对定位会脱离文档流,并且不占空间,普通文档流的元素的布局会认为绝对定位的元素不存在,所以绝对定位的元素可以覆盖在其他元素上,可以通过 z-index 来控制这些层的相应顺序。

<html><head><style type="text/css">/* 由于 div1 没有已定位的祖先元素,所以此处以 body 为准 */.div1{width: 100px;height: 100px;background: blue;position: absolute;left: 50px;}/* 以父类的位置为标准,也就是 div1 */.div2{width: 50px;height: 50px;background: gray;position: absolute;left: 50px;top: 80px;}</style></head><body><div class="div1">div1<div class="div2">div2</div></div></body>

效果图:

效果图中,div2 的父元素是 div1 ,以 div1 为基准。div2 距离 div1 的 top 80px,left 50px 。

绝对定位不会占用原来的空间,以下面的代码生产的效果图示例:

<html><head><style type="text/css">.div1{width: 100px;height: 100px;background: blue;position: relative;}.div2{width: 50px;height: 50px;background: gray;position: absolute;left: 20px;}#span1{width: 100px;height: 30px;background: green;display: inline-block;}</style></head><body><div class="div1"><div class="div2"></div><span id="span1">1</span></div></body>
</html>

效果图

图中,灰色 div2 的框覆盖住了绿色的 span1 ,不在占用原来的空间

相对定位

position:relative

设置为相对定位的元素框会偏移某个距离。元素仍然保持其未定位前的形状,它原本所占的空间仍保留。

相对位置的坐标参考系是以自己上一次的位置作为原点参考,其实也就是相对于自己的位置。

<html><head><meta charset="utf-8"><style type="text/css">.div1{width: 100px;height: 100px;background: blue;left: 50px;}/* 自己的原本位置为标准,也就是左上角 */.div2{width: 50px;height: 50px;background: gray;position: relative;left: 100px;}</style></head><body><div class="div1"><div class="div2"></div></div></body>
</html>

效果图:

相对定位是以它最初的位置为准,因为 div1(蓝色) 是父类,所以它最初位置在 div1 内,然后它距离左边 100px。

相对定位的元素,将会占用原来的空间,示例代码:

<html><head><meta charset="utf-8"><title></title><style type="text/css">.div1{width: 100px;height: 100px;background: blue;position: relative;}.div2{width: 50px;height: 50px;background: gray;position: relative;left: 20px;}#span1{width: 100px;height: 30px;background: green;display: inline-block;}</style></head><body><div class="div1"><div class="div2"> </div><span id="span1">1</span></div></body>
</html>

效果图

如图说是,灰色的 div2 依旧占用着空间,所以 span1 只能放在下面
注意

如果有文字的情况下,如果在有文字的范围内,那么长度或者高度要包括文字的长度和高度。在使用相对定位时,无论是否进行移动,元素仍然占据原来的空间。因此,移动元素会导致它覆盖其它框。
还有, 当 position:absolute 会改变 display 类型,也就是 inline-block 方式进行显示。

其他

  • static(默认值)

    • 该元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。
    • 元素框正常生成。块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中。
    • 表示没有定位
  • fixed
    • 元素框的表现类似于将 position 设置为 absolute,不过其包含块是视窗本身。
    • 固定定位的元素不会随浏览器窗口的滚动条滚动而变化,也不会受文档流动影响,而是始终位于浏览器窗口内视图的某个位置。

总结

相对定位是“相对于”元素在文档中的初始位置,而绝对定位是“相对于”最近的已定位祖先元素,如果不存在已定位的祖先元素,那么“相对于”最初的包含块(body)。

什么是绝对、相对定位相关推荐

  1. CSS之定位(定位/相对定位)

    定位/相对定位: <!DOCTYPE html> <html><head><meta charset="utf-8" /><t ...

  2. IE6下绝对定位的DIV被相对定位的DIV挡住的问题

    http://blog.sina.com.cn/s/blog_4be6505c0101cicr.html 今天在做项目的时候,遇到了一个问题,在一个div中,有个绝对的div,不论这个绝对定位的div ...

  3. 【约束布局】ConstraintLayout 13 种相对定位属性组合 ( 属性组合 | 用法说明 )

    文章目录 相对定位简介 相对定位属性组合前提条件 相对定位 Left Right 四种组合属性 相对定位 Start End 四种组合属性 相对定位 Top Bottom 四种组合属性 相对定位控件约 ...

  4. 033_CSS相对定位

    1. CSS相对定位 1.1. 相对定位是一个非常容易掌握的概念.如果对一个元素进行相对定位, 它将出现在它所在的位置上.然后, 可以通过设置垂直或水平位置, 让这个元素"相对于" ...

  5. 点击定位到指定位置_以三菱PLC来举例说明相对定位与绝对定位指令

    在自动化生产.加工和控制过程中,经常要对加工工件的尺寸或机械设备移动的距离进行准确定位控制.这种定位控制仅仅要求控制对象按指令进入指定的位置,而,定位又为绝对定位,相对定位两种,那么为什么又分为绝对定 ...

  6. CSS之固定定位、相对定位、绝对定位

    一.相对定位 相对元素自身所在的原来的位置进行定位. 可以设置 left,right,top,bottom四个属性 效果:在进行相对定位以后,元素原来所在的位置被保留了,被占用了–>保留站位其他 ...

  7. CSS3的绝对定位与相对定位

    一.position 的四个值:static.relative.absolute.fixed. 绝对定位:absolute 和 fixed 统称为绝对定位 相对定位:relative 默认值:stat ...

  8. div+css相对定位和绝对定位

    今天突然发现自己在布局的时候思路很乱,于是毅然决然的想要重新的理一下自己的布局思路,今天就先从定位开始吧~ 绝对定位(absolute):将被赋予此定位方法的对象从文档流中拖出,如果对象的父级没有设置 ...

  9. 层模型--绝对定位、相对定位、固定定位

    绝对定位: 如果想为元素设置层模型中的绝对定位,需要设置position:absolute(表示绝对定位),这条语句的作用将元素从文档流中拖出来,然后使用left.right.top.bottom属性 ...

  10. WEB学习 -相对定位、绝对定位、固定定位、z-index

    相对定位 相对定位,就是微调元素位置的.让元素相对自己原来的位置,进行位置调整. 2.不脱标,老家留坑,形影分离也就是说相对定位不脱标,真实位置是在老家,只不过影子出去了,可以到处飘.3.相对定位用途 ...

最新文章

  1. 关于并发处理,下列哪些说法符合《阿里巴巴Java开发手册》
  2. flutter实现(OutlineButton)线框按钮
  3. Python看程序执行时间(time模块)
  4. java安全沙箱(二)之.class文件检验器
  5. php作业90,php中文网移动端-第九期(191107作业)
  6. Mysql半双工主从复制
  7. 安装部署gitlab ci
  8. 信息学奥赛C++语言:爱吃桃子的琳琳
  9. 2018 C语言大作业--21_Ekko制作教程
  10. Cookie与Session简介
  11. 小程序input获得焦点触发_小程序学习(三)
  12. 100-days: nineteen
  13. (原创)用cmd命令制作恶搞程序
  14. 希腊字母在数学或物理中代表的意思各是什么
  15. php 更改发送ip,PHP重新启动路由器以更改IP地址程序
  16. 字符编码集与ASCII码表
  17. 七夕快到了,用python给女朋友画张素描吧
  18. java集成企业微信完成授权登录
  19. python 利用Scipy计算person 和spearman相关系数
  20. GLSL ES 语言—矢量矩阵运算

热门文章

  1. iphone开发(一)
  2. 注意力机制学习笔记二(Attention-GAN、SAGAN、YLG-SAGAN)
  3. 计算机视觉英语论文,计算机视觉导论论文中英双语版(10页)-原创力文档
  4. jdk8 stream
  5. zk-web框架的学习之路,重新认识Java,Eclipse安装zk插件
  6. vue项目中 axios 请求成功 却进入catch中
  7. 评估企业是否适合开发复合业务服务
  8. 迅雷调用potplayer
  9. 计算机网络将分布在不同位路上的独立,第一章 计算机网络概述练习题及答案...
  10. kvm与openvz等不同的虚拟化技术有什么区别