一直没有弄懂相对定位与绝对定位之间的关系,今天特来学习一下。本实践都是在360浏览器下测试所得。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"> <style type="text/css">
.hv
{
position:relative;
left:100px;
top:150px;
}
.hv2
{
position: absolute;
left:100px;
top:150px;
} h2{ background-color:gray;}
p{background-color: red;}
</style>
<title>
last
</title>
</head>
<body>
<h2 class="hv2">This is a heading an absolute position This is a heading an absolute positionThis is a heading an absolute positionThis is a heading an absolute position</h2> <p>With absolute positioning, an element can be placed anywhere 方法on a page. The heading below is placed 100px from the left of the page and 150px from the top of the page.</p> </body>
</html>

获得html高度是68px=p元素高度+margin=36px+16px+16px=body高度+p的margin=36px+16px+16px

获得body高度是36px=p元素高度=36px

获得h2高度是54px margin 20px

获得p高度是36px margin 16px

修改一下把样式改成hv 即position:relative 则

获得html高度是146px=body高度+h2 顶部margin +p底部 margin=110px+20px+16px

获得body高度是 110px=h2高度+p元素高度+h2与p元素之间的margin=54px+36px+20px=110px

获得h2高度是54px margin 20px

获得p元素高度是36px margin 16px

不设置样式即默认

获得html高度是146px=body高度+h2 顶部margin +p底部 margin=110px+20px+16px

获得body高度 110px=h2高度+p元素高度+h2与p元素之间的margin=54px+36px+20px=110px

获得h2高度 54px margin 20px

获得p元素高度 36px margin 16px

得出结论:

position:relative 可以移动的相对定位元素的内容和相互重叠的元素,它原本所占的空间不会改变。

position:absolute 定位使元素的位置与文档流无关,因此不占据空间。

相对定位占空间,绝对定位不占空间

参考:http://www.runoob.com/css/css-positioning.html

相关博文:http://blog.csdn.net/dyllove98/article/details/8967114

Relative 定位与Absolute 定位实例的更多相关文章

  1. fixed定位与absolute定位

    相同点: 1.fixed定位和absolute定位都是绝对定位 2.fixed定位和absolute定位都脱离了标准文档流, 3.未设置偏移量时,都定位在父元素的左上角 tip:元素设置相对定位或绝对 ...

  2. position:relative/static/fixed/absolute定位的区别以及使用场景

    absolute是相对于自己最近的父元素来定位的,relative是相对于自己来定位的 relative 不脱离文档流,absolute 脱离文档流.也就是说:relative 的元素尽管表面上看到它 ...

  3. CSS 相对|绝对(relative/absolute)定位系列(一)

    一.有话要说 以前写内容基本上都是:眼睛一亮——哟呵,这个不错,写!然后去古人所说的茅房里蹲会儿,就有写作的思路了.但是,构思相对/绝对(relative/absolute)定位系列却有好些时日,考虑 ...

  4. relative 和 absolute 定位关系

    问题: relative 和 absolute 之间的关系是什么?有什么区别? 那,答案呢? relative  相对定位, 以自己没有设置relative 属性之前的位置来定位,占用没有设置rela ...

  5. CSS 相对/绝对(relative/absolute)定位系列(四)——张鑫旭

    前三篇(1, 2, 3)都是介绍的absolute属性,终于,轮到本文讲讲relative相对定位. 一.relative属性的形象化思维 relative是个看上去低调,有些特殊才能,气场强大,有着 ...

  6. position 的值absolute、fixed、relative和static的定位原点是什么

    position 的值absolute.fixed.relative和static的定位原点是什么 absolute 成绝对定位的元素,相对于值不为static的第一个父元素进行定位,也可以理解为离自 ...

  7. CSS学习摘要-定位实例

    CSS学习摘要-定位实例 注:全文摘自MDN-CSS定位实例 列表消息盒子 我们研究的第一个例子是一个经典的选项卡消息框,你想用一块小区域包括大量信息时,一个非常常用的特征.这包括含有大信息量的应用, ...

  8. 通过案例理解position:relative和position:absolute

    w3school过了HTML的知识之后,觉得要自己单纯地去啃知识点有点枯燥,然后自己也很容易忘记,所以便找具体的网站练手便补上不懂的知识点.position:relative和postion:abso ...

  9. fixed 和 absolute 定位的区别

    fixed:固定定位           absolute:绝对定位 在没有滚动条的情况下两者其实没有差异.但是在有滚动条后,fixed始终会在定好的位置不动,而absolute会随参照对象元素的宽高 ...

随机推荐

  1. JS-面向对象-封装

    --参考文献: --http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_encapsulation.html --js面 ...

  2. LeetCode Search a 2D Matrix II

    原题链接在这里:https://leetcode.com/problems/search-a-2d-matrix-ii/ Write an efficient algorithm that searc ...

  3. day02-java

    day02 大纲: 变量 基本数据类型 数据类型之间的转换 1.变量:存数的,代词,指代的就是它所存的那个数  1)声明:      int a; //声明一个整型的变量,名为a      int b ...

  4. JavaScript:通过id来进行元素的取得

    每一个HTML元素都使用id来进行一个标注,随后可以通过document.getElementById(“ID名称”)取得指定的ID元素对象,取得元素对象之后就可以对其进行操作. 但是document ...

  5. MVC项目实践,在三层架构下实现SportsStore-02,DbSession层、BLL层

    SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管 ...

  6. Java 找到数组中两个元素相加等于指定数的所有组合

    思路1:可以用hash表来存储数组中的元素,这样我们取得一个数后,去判断sum - val 在不在数组中,如果在数组中,则找到了一对二元组,它们的和为sum,该算法的缺点就是需要用到一个hash表,增 ...

  7. Unity插件研究院之ResourceChecker

    这个插件是我在国外网站逛论坛发现的,试用了一下非常好用,是一个轻量级的插件就一个类.开发中尤其是和美术合作的时候,可能你会发现Project视图中有很多没有用到的资源,但是你又不敢删除,因为你不知道那 ...

  8. CentOS 配置本地yum源

    [root@localhost ~]#ls /media/dvd/                                                                   ...

  9. storm安装

    官方安装地址:http://storm.apache.org/releases/1.0.2/Setting-up-a-Storm-cluster.html storm集群的三个角色 Nimbus.Su ...

  10. python MySQLdb中文乱码

    Python操作MySQL需要安装Python-MySQL可以从网上搜索一下,和一般的Python包一样安装 安装好之后,模块名字叫做MySQLdb ,在Window和Linux环境下都可以使用,试验 ...