什么是绝对、相对定位
绝对定位
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)。
什么是绝对、相对定位相关推荐
- CSS之定位(定位/相对定位)
定位/相对定位: <!DOCTYPE html> <html><head><meta charset="utf-8" /><t ...
- IE6下绝对定位的DIV被相对定位的DIV挡住的问题
http://blog.sina.com.cn/s/blog_4be6505c0101cicr.html 今天在做项目的时候,遇到了一个问题,在一个div中,有个绝对的div,不论这个绝对定位的div ...
- 【约束布局】ConstraintLayout 13 种相对定位属性组合 ( 属性组合 | 用法说明 )
文章目录 相对定位简介 相对定位属性组合前提条件 相对定位 Left Right 四种组合属性 相对定位 Start End 四种组合属性 相对定位 Top Bottom 四种组合属性 相对定位控件约 ...
- 033_CSS相对定位
1. CSS相对定位 1.1. 相对定位是一个非常容易掌握的概念.如果对一个元素进行相对定位, 它将出现在它所在的位置上.然后, 可以通过设置垂直或水平位置, 让这个元素"相对于" ...
- 点击定位到指定位置_以三菱PLC来举例说明相对定位与绝对定位指令
在自动化生产.加工和控制过程中,经常要对加工工件的尺寸或机械设备移动的距离进行准确定位控制.这种定位控制仅仅要求控制对象按指令进入指定的位置,而,定位又为绝对定位,相对定位两种,那么为什么又分为绝对定 ...
- CSS之固定定位、相对定位、绝对定位
一.相对定位 相对元素自身所在的原来的位置进行定位. 可以设置 left,right,top,bottom四个属性 效果:在进行相对定位以后,元素原来所在的位置被保留了,被占用了–>保留站位其他 ...
- CSS3的绝对定位与相对定位
一.position 的四个值:static.relative.absolute.fixed. 绝对定位:absolute 和 fixed 统称为绝对定位 相对定位:relative 默认值:stat ...
- div+css相对定位和绝对定位
今天突然发现自己在布局的时候思路很乱,于是毅然决然的想要重新的理一下自己的布局思路,今天就先从定位开始吧~ 绝对定位(absolute):将被赋予此定位方法的对象从文档流中拖出,如果对象的父级没有设置 ...
- 层模型--绝对定位、相对定位、固定定位
绝对定位: 如果想为元素设置层模型中的绝对定位,需要设置position:absolute(表示绝对定位),这条语句的作用将元素从文档流中拖出来,然后使用left.right.top.bottom属性 ...
- WEB学习 -相对定位、绝对定位、固定定位、z-index
相对定位 相对定位,就是微调元素位置的.让元素相对自己原来的位置,进行位置调整. 2.不脱标,老家留坑,形影分离也就是说相对定位不脱标,真实位置是在老家,只不过影子出去了,可以到处飘.3.相对定位用途 ...
最新文章
- 关于并发处理,下列哪些说法符合《阿里巴巴Java开发手册》
- flutter实现(OutlineButton)线框按钮
- Python看程序执行时间(time模块)
- java安全沙箱(二)之.class文件检验器
- php作业90,php中文网移动端-第九期(191107作业)
- Mysql半双工主从复制
- 安装部署gitlab ci
- 信息学奥赛C++语言:爱吃桃子的琳琳
- 2018 C语言大作业--21_Ekko制作教程
- Cookie与Session简介
- 小程序input获得焦点触发_小程序学习(三)
- 100-days: nineteen
- (原创)用cmd命令制作恶搞程序
- 希腊字母在数学或物理中代表的意思各是什么
- php 更改发送ip,PHP重新启动路由器以更改IP地址程序
- 字符编码集与ASCII码表
- 七夕快到了,用python给女朋友画张素描吧
- java集成企业微信完成授权登录
- python 利用Scipy计算person 和spearman相关系数
- GLSL ES 语言—矢量矩阵运算