一、position 的四个值:static、relative、absolute、fixed。

绝对定位:absolute 和 fixed 统称为绝对定位

相对定位:relative

默认值:static

二、relative定位与absolute定位的区别

实例:

HTML代码:

css代码:

初始效果:

1、relative:相对于原来位置移动,元素设置此属性之后仍然处在文档流中,不影响其他元素的布局

给第二个box设置relative:

元素相对于原来位置偏移,宽高都没变,撑大了容器。

2、absolute:元素会脱离文档流,如果设置偏移量,会影响其他元素的位置定位

只给第五个box设置absolute:

说明:元素在没有定义宽度的情况下,宽度由元素里面的内容决定,效果和用float方法一样。

absolute定位原理剖析:

1.在父元素没有设置相对定位或绝对定位的情况下,元素相对于根元素定位(即html元素)(是父元素没有)。

现在给box5偏移值来验证:

2.父元素设置了相对定位或绝对定位,元素会相对于离自己最近的设置了相对或绝对定位的父元素进行定位(或者说离自己最近的不是static的父元素进行定位,因为元素默认是static)。

补充:网上有人解释为元素会相对于第一个不是static的父元素定位,我觉得这很容易让人产生误解。以上是我自己的定义。

现在给body元素一个绝对定位(body元素设置为了absolute,整个容器的宽度由最长div决定,宽度变小了):

此时的box5现在相对于body元素定位

我把上面相对于html元素定位和相对于body定位的两张图放在一起,对比可以看到下面的图,相对于body定位的box5距离文字box1要远一点。所以在没有父元素设置相对定位或绝对定位的情况下,设置了absolute的元素会相对于html根元素定位。

css代码:

再来验证这句话:父元素设置了相对定位或绝对定位,元素会相对于离自己最近的设置了相对或绝对定位的父元素进行定位

现在给box们套三个父容器,如下:

html代码:

三个父容器的css样式如下:

现在的样子,现在的box5并不是所说的相对于第一个不是static的元素定位(按这句话的说法,现在我的box5应该相对于最外层容器1偏移才对),而是相对于离自己最近的一层的设置了相对或绝对定位的父元素定位:

现在把第二个容器和第三个容器的position注释掉(没有position,设置top、left、bottom、right值都没有效),结果如下:

现在box5的外层设置了相对或绝对的父元素只有最外层容器1,所以box5现在相对于最外层容器1定位。(明显box5移动了)

现在只注释掉第三个容器的position

原理也是一样,现在相对于第二个容器定位(top:50px,离自己最近的设置了相对或绝对定位的父元素):

上面第二个和第三个容器都设置的是相对定位,现在改成绝对定位:

css代码:

原理和把第二、第三个容器设置为relative一样,只是设置为absolute了之后,第三个容器包含着内容一起脱离了文档,所以没有撑开外面两层容器的宽度

现在的效果:

外面再添一个容器,来验证上面第一、第二没有被撑开的效果

宽度受到上一层的父容器的宽度限制,现在拉宽第一层的容器的宽度,第二层和第三层随之变宽,效果如下:

但是如果容器里面有长的div,容器仍然可以被撑开,效果如下:

补充:

box2设置为absolute定位之后,脱离文档流,box3向上移,左边被box2遮盖了。

在上面的基础上,box3设置absolute,box3脱离文档流(就好像box3浮起来了一样,浮在了box2上面),box4往上移,box3盖住box2,和部分box4.

同理如果box4设置了绝对定位,就会浮起来盖住box3和box2。

总结

relative:定位是相对于自身位置定位(设置偏移量的时候,会相对于自身所在的位置偏移)。设置了relative的元素仍然处在文档流中,元素的宽高不变,设置偏移量也不会影响其他元素的位置。最外层容器设置为relative定位,在没有设置宽度的情况下,宽度是整个浏览器的宽度。

absolute:定位是相对于离元素最近的设置了绝对或相对定位的父元素决定的,如果没有父元素设置绝对或相对定位,则元素相对于根元素即html元素定位。设置了absolute的元素脱了了文档流,元素在没有设置宽度的情况下,宽度由元素里面的内容决定。脱离后原来的位置相当于是空的,下面的元素会来占据位置。

原文链接:http://www.cnblogs.com/yy95/p/5672440.html

html相对定位 不占位置,CSS position 相对定位和绝对定位相关推荐

  1. html相对定位 不占位置,相对定位与绝对定位的区别 相对定位是以当前位置为基准计算的...

    div的相对定位和绝对定位是什么意思,什么区别啊? 有位老兄说学习div+css的div布局必须学会相对定位和绝对定位 小弟初学不相对定位和绝对定位是定位的两种表现形式,区别如下: 一.主体不同 相对 ...

  2. html隐藏后还占位置,css隐藏不占位置的方法是什么?

    用 CSS 隐藏页面元素有许多种方法.你可以将 opacity 设为 0.将 visibility 设为 hidden.将 display 设为 none 或者将 position 设为 absolu ...

  3. CSS position 属性:绝对定位与相对定位,以及浮动

    以前一直很模糊定位原理,以为absolute与relative必须配合使用,使用absolute必须父标签必须设置为relative. 可能的值:absolute,fixed,relative,sta ...

  4. css 相对定位取消占位,css position 相对定位

    总结C#保留小数位数及百分号处理 方法一: ); 方法二: Math.Round() 方法三: double dbdata = 0.55555; string str1 = dbdata.ToStri ...

  5. html css x y相对定位坐标,HTML与CSS之相对定位、绝对定位

    相对定位 指元素在其正常的位置偏移某些像素即相对于元素本身的原有位置html 我是C1 我是C2 css #C0{ border: 1px solid red; width: 400px; heigh ...

  6. html相对定位向上偏移,使用CSS的相对定位和偏移量

    这是利用CSS相对定位和偏移写成的表单输入框效果,不是以前用的表格那种,也没有用UL li,觉得借此示例可练习一下CSS,特别是CSS的定位和布局方面的知识,了解top,bottom,left,rig ...

  7. html不现实但占位置,css怎么占位但不显示?

    css可以使用visibility:hidden样式设置元素占位但不显示.visibility属性规定元素是否可见,即使不可见的元素也会占据页面上的空间. CSS的visibility属性使元素占位, ...

  8. CSS 中,为什么绝对定位(absolute)的父级元素必须是相对定位(relative)?

    问题: CSS 中,为什么绝对定位(absolute)的父级元素必须是相对定位(relative)? 搞清楚了,正确的应该是只要父级元素=设置了position值(absolute或者relative ...

  9. 详解CSS的相对定位和绝对定位

    CSS的相对定位和绝对定位 一.Static 静态定位 通常情况下,我们元素的position属性的值默认为static 就是没有定位,元素出现在正常的文档流中,这个时候你给这个元素设置的left,r ...

最新文章

  1. 高级转录组分析和R数据可视化第11期(课程推迟,可先报名,时间另行告知)
  2. 软件工程学习笔记(考试版)
  3. 信息学奥赛一本通C++语言——1012:计算多项式的值
  4. 【分布式ID】理解Snowflake算法的实现原理
  5. 三维点云学习(5)2-Deep learning for Point Cloud-PointNet
  6. php api 文档 管理,Api开发者福利之api在线管理,模拟请求测试,文档生成工具--Apizza...
  7. 计算机网络校园网网络设计报告,计算机网络课程设计报告-校园网的组建和应用...
  8. mysql sin度数正玄值_正弦值角度对照表
  9. 使用微 PE(U盘)安装 Windows 10 操作系统
  10. wegame饥荒一直登录中_PC饥荒本地双人(最多三人)
  11. 综合使用公网/专网等频段!今日,工信部发布工业互联网和物联网无线电频率使用指南(附下载)...
  12. 【计算机网络】(一):计算机网络+互联网基本知识
  13. LayUI项目之我的会议(送审以及排座)
  14. 数据中台在企业数字化转型中的践行(下篇)
  15. python图片提取文字软件_这款Python 库 4行代码提取图片中的文字
  16. 录像机中码流类型中定时、事件、网传代表什么意思?
  17. 【全局盘点】华为云政企全栈技术创新能力图谱
  18. 常州abb机器人编程_ABB机器人编程程序解析
  19. 计算机公共基础知识(N-S图,DFD图,PAD图,程序流程图,E-R图)
  20. 2018_WWW_DKN- Deep Knowledge-Aware Network for News Recommendation阅读笔记

热门文章

  1. 为什么街上发传单的人会认真发完,却不把传单丢了呢?
  2. python的算术表达式_python算术表达式
  3. 对话翁志:京东大数据如何让技术真正落地
  4. opencv ipcam
  5. Java电商平台-电商订单系统全解析
  6. 用P、V操作解决进程同步问题的解题步骤
  7. Python爬虫技巧--selenium解除webdriver特征值
  8. YOLOv5改进之十三:主干网络C3替换为轻量化网络EfficientNetv2
  9. java float 判断整数_判断一个数是否是整数
  10. 学生php实训个人总结300字,实训总结300字通用版5篇