浅谈position: absolute和position:relative
一、在此先说一下文档流的概念:
1,文档流定义:
百度百科定义:文档流是文档中可显示对象在排列时所占用的位置。
大多网友的理解:元素的位置由元素在 (X)HTML 中的位置决定。将窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素,即为文档流.
2,css定位机制:
普通流:普通流就是正常的文档流,在HTML里面的写法就是从上到下,从左到右的排版布局。
浮动:float(left/right)
定位:position(static/relative/absolute)
我的总结和理解:文档流就是没有使用float和position:absolute的元素,(position:relative也会使元素脱离文档流,但是它以前所在地位置还会占用空间,下面的元素不能挤上来),使用了float和position:absolute的元素会脱离文档流,后面的元素会占用它们的位置。
例1,使用float的例子:
未使用前核心代码:
</head>
<style type="text/css">
div{ background:#C30; width:50px; height:50px; margin:10px; }
</style>
</head>
<body> <div class="ad">1</div> <div>2</div> <div>3</div> </body>
效果图如下所示

给编号为1的方框使用float:left,核心代码如下:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">
div{
background:#C30;
width:50px;
height:50px;
margin:10px;
}
.ad{
float:left;
} </style>
</head> <body>
<div class="ad">1</div>
<div>2</div>
<div>3</div>
</body>
</html>
效果图如下所示:

我们可以看到,方框1覆盖了方框2,这就是方框1使用float后脱离文档流的效果,它不再占用空间,然后方框2就挤上去了。
例2,使用position:absolute使元素脱离文档流例子的核心代码如下:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">
div{
background:#C30;
width:50px;
height:50px;
margin:10px;
}
.ad{
position:absolute;
top:100px;
left:100px;
} </style>
</head> <body>
<div class="ad">1</div>
<div>2</div>
<div>3</div>
</body>
</html>
带来的效果图如下:

我的总结体会:
1号方框使用position:absolute绝对定位后脱离文档流,不再占用空间,到这里我个人觉得脱离文档流的元素可以以为它是和这个页面无关,独立出来在一个新的页面排版,然后显示到以前这个页面的上面,覆盖它,各排版各的。而position:relative也会脱离出来排版,但是区别是它还站着以前的空间,如果1方框是relative元素,2,3号方框就不能挤上来。
3,position:absolute应用:
absolute是绝对定位,只有给它top,left,right,bottom当中至少一个赋值,它才会生效。例如下面才会生效
.ad{
position:absolute;
top:100px;
left:100px;
}
这里的top,left都是相当于该元素的父元素的,包含它的元素如果含有position:relative,那么这个就是它的父元素,如果没有,那么body就是它的父元素,定位就从浏览器左上角开始。
浅谈position: absolute和position:relative的更多相关文章
- 浅谈css中的position属性
我觉得吧,css如果不考虑浏览器的兼容问题的话,最让人头疼的应该就是position了,反正我是这么觉得的,为了能基本上搞清楚position的几种情况,我找了一些资料,做了一个小实验,下面是实验的过 ...
- 浅谈css中的position
什么是position,根据css 2.1中的描述,position和float的值决定了浏览器要采用那种定位算法来计算元素盒子的具体位置.先避开float不谈,本文主要介绍position属性的不同 ...
- position之fixed固定定位、absolute绝对定位和relative相对定位
什么是层模型? 什么是层布局模型?层布局模型就像是图像软件PhotoShop中非常流行的图层编辑功能一样,每个图层能够精确定位操作,但在网页设计领域,由于网页大小的活动性,层布局没能受到热捧.但是在网 ...
- 定位 position: absolute & relative
[position:absolute] 意思是绝对定位,他默认参照浏览器的左上角,配合TOP.RIGHT.BOTTOM.LEFT(下面简称TRBL)进行定位,有以下属性: 1)如果没有TRBL,以父级 ...
- position:absolute/relative/fixed小结
1.绝对定位:position:absolute; 当一个div块的位置被定义为绝对定位absolute时,也就意味着它失去了文档流的位置,后面的文档流会紧跟着补上来接替它的位置.如果上下左右的绝对偏 ...
- css position: absolute、relative详解
CSS2.0 HandBook上的解释: 设置此属性值为 absolute 会将对象拖离出正常的文档流绝对定位而不考虑它周围内容的布局.假如其他具有不同 z-index 属性的对象已经占据了给定的位置 ...
- CSS绝对定位和相对定位 position: absolute/relative
absolute(绝对定位): 会把对象拖离HTML文档流,并通过top, left, right, bottom确定对象的具体位置,这个四个位置属性至少要设置一个,否则无法激活对象的absolute ...
- 【CSS3】---层模型position之fixed固定定位、absolute绝对定位和relative相对定位
什么是层模型? 什么是层布局模型?层布局模型就像是图像软件PhotoShop中非常流行的图层编辑功能一样,每个图层能够精确定位操作,但在网页设计领域,由于网页大小的活动性,层布局没能受到热捧.但是在网 ...
- positio:absolute与position:relative的区别
absolute 能让元素 inline-block 化:例如一个div标签默认宽度是100%显示的,但是一旦被absolute属性缠上,则100%默认宽度就会变成自适应内部元素的宽度. float ...
随机推荐
- 结构-行为-样式-Jquery实现延迟加载特效(数据缓冲特效)
最近在做一个地产项目的过程中,原来用的延迟加载的插件在IE下会使浏览器突然缩小,这个让客户很不满意,于是就考虑到兼容性的问题决定自己写一个插件.思路:定义一个代码块,手动加载到页面,然后手动删除. ...
- 浅谈敏捷组织中PMO的角色
所谓的"敏捷组织"其实并没有标准的模式,而且PMO(项目管理办公室)并没有一个标准的角色定义.有一个非常普遍的误解,公司在选择"敏捷"或者"瀑布&qu ...
- 如何成为一名hacker?
很多人问我如何成为黑客,一般来说我总是会扯一大堆废话,告诉他们要时刻保持好奇心,要学会打破规则挑战权威之类的. 但这类话肯定不是提问者想听的.我揣摩了一下他们的心情,他们想问的应该是这个问题:如何学习 ...
- 设计模式(二)单例模式Singleton(创建型)
几乎所有面向对象的程序中,总有一些类的对象需要是唯一的,例如,通过数据库句柄到数据库的连接是独占的.您希望在应用程序中共享数据库句柄,因为在保持连接打开或关闭时,它是一种开销.再如大家最经常用的IM, ...
- [z] .net与java建立WebService再互相调用
http://blog.csdn.net/yenange/article/details/5824967 : .net建立WebService,在Java中调用. 1.在vs中新建web 简单修改一下 ...
- C基于客户端的通信实例
运行环境liunx 需求:客户端对服务器发送一个TCP连接,连接成功之后发送数据并接收返回数据 代码如下: #include <sys/socket.h> #include <net ...
- ES6就是ES2015 的主要内容
转自 https://segmentfault.com/a/1190000004365693 ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在 ...
- C语言:SQLITE3的学习
Sqlite基础学习 一.sqlite的概念 SQLite是一款轻型数据库,是遵守ACID的关系型数据库管理系统,由C语言开发设计.Sqlite的设计目标着眼于嵌入式领域,所以具有占用系统资源低和处理 ...
- vs 插件
Visual Assist 代码提示 Indent Guides
- HDU 1272 小希的迷宫(乱搞||并查集)
小希的迷宫 Problem Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有 ...