Absolute(绝对定位)与relative(相对定位)的图文讲解

Position的属性值有:
1.     Absolute:绝对定位,是相对于最近的且不是static定位的父元素来定位

2.     Fixed:绝对定位,是相对于浏览器窗口来定位的,是固定的,不会跟屏幕一起滚动。

3.     Relative:相对定位,是相对于其原本的位置来定位的。

4.     Static:默认值,没有定位。

5.     Inherit:继承父元素的position值。

对于初学者来说,position的属性很让人头疼,特别是absolute与relative之间的区别,接下来我就以图文讲解的方式来给大家讲解一下这两者之间的不同之处。

首先设置4个div:

<body>

<div class="div1">第一个div</div>

<div class="div2">第二个div</div>

<div class="div3">第三个div</div>

<div class="div4">第四个div</div>

</body>

添加背景色,效果如下:

给第二个div设置absolute:

.div2{

height:100px;

background-color: blueviolet;

position:absolute;

top:50px;

left:50px;

}

效果如图:

第二个div设置了absolute,则该div的宽度就由文本决定,且下面的div会上移占据之前第二个div的位置,top和left是相对于离它最近且不是static定位的父元素来定位的,在此div2因为没有父元素,所以第二个div相对于根元素即html元素来定位。

将第二个div设置为relative:

.div2{

height:100px;

background-color: blueviolet;

position:relative;

left:50px;

top:50px;

}

效果如图:

设置relative的div不会影响其他div的位置,且top和left是相对于它原本自身的位置来定位。

给第二个div添加一个父div:

<body>

<div class="div1">第一个div</div>

<div class="container1">

第二个div的父div

<div class="div2">第二个div</div>

</div>

<div class="div3">第三个div</div>

<div class="div4">第四个div</div>

</body>

.container1{

position:absolute;

height:200px;

background-color: greenyellow;

}

.div2{

height:100px;

background-color: blueviolet;

position:absolute;

top:50px;

left:50px;

}

效果如图:

div2的父div设置为absolute,下面的div3,div4会上移,div2也设置为absolute,div2就会相对于父div来定位。

若将div2即第二个div的absolute改为relative:

.div2{

height:100px;

background-color: blueviolet;

position:relative;

top:50px;

left:50px;

}

则效果图如下:

注意,上面两个图的第二个div与父div的上边距是不同的,第一个是相对父div来定位,第二个是相对原来本身的位置来定位。可能此时你会注意到两个图的第二个div的宽度不同,在没有给div设置宽度的情况下,第一个是设为absolute,所以宽度为文本宽度,第二个是relative,所以宽度与父元素宽度相同。

若保持上面的两种情况,都将第二个div的宽度设为500px,得到效果如下:

由上图可以知道,absolute定位的子元素宽度不会影响父元素的宽,而relative定位的子元素会撑大父元素。

总结:
Absolution:元素会脱离文档流,定位是相对于离它最近的且不是static定位的父元素而言,若该元素没有设置宽度,则宽度由元素里面的内容决定,且宽度不会影响父元素,定位为absolution后,原来的位置相当于是空的,下面的的元素会来占据。

Relative:元素仍处于文档流中,定位是相对于原本自身的位置,若没有设置宽度,则宽度为父元素的宽度,该元素的大小会影响父元素的大小。

原文地址:https://www.cnblogs.com/czlovezmt/p/10172454.html

时间: 2024-08-26 02:26:49

Absolute(绝对定位)与relative(相对定位)的图文讲解的相关文章

【CSS3】---position之absolute绝对定位和relative相对定位

”最近被absolute和relative弄的不知所措,不知道怎么用了,网上查找文章总结总结,对与错欢迎指正, 也欢迎您加入IT交流群:123493055大家一起交流>>>>>“ Absolute,CSS中的写法是:position:absolute; 他的意思是绝对定位,他是参照浏览器的左上角,配合TOP.RIGHT.BOTTOM.LEFT(下面简称TRBL)进行定位,在没有设定TRBL,默认依据父级的做标原始点为原始点.如果设定TRBL并且父级没有设定position属性

absolute绝对定位可以实现相对定位

没有设置定位值的absolute元素是个普通又不普通的元素,普通之处在于其依旧在DOM tree中,对margin等属性敏感: 不普通在于其实际的高宽都丢失了.这非常类似于浮动(float),浮动的本质就是“包裹与破坏”,破坏高度,浮动元素的实际占据高度为0: 而absolute元素(无定位值)也是“包裹与破坏”,只是其“破坏”比float更加凶猛,不仅实际的高度没有,连实际的宽度也没有. 内容来自http://www.zhangxinxu.com/wordpress/2010/01/absol

positio:absolute与position:relative的区别

absolute 能让元素 inline-block 化:例如一个div标签默认宽度是100%显示的,但是一旦被absolute属性缠上,则100%默认宽度就会变成自适应内部元素的宽度. float 可以 inline-block 化元素 float 的破坏性:使高度塌陷absolute 的破坏性:使高度和宽度都塌陷 absolute属性的破坏性:高宽占据空间为0的特性,定位性:借助left/top等属性的定位 少用absolute,常见absolute布局的替代实现方案: 使用margin代替

relative相对定位/定位偏移

---恢复内容开始--- 一.position:relative;相对定位 a.不影响元素的本身的特性: b.不使用元素脱离文档流(元素的移动之后原始位置会被保留): c.如果没有定位偏移量,对元素本身没有任何影响: d.提高层级(也就是权重问题): 定位元素的位置控制 top/right/bottom/left   定位元素的偏移量 二.position;absolute;绝对定位 a.使元素完全脱离文档流: b.使用内嵌支持宽高: c.块属性标签内容撑开宽度: d.如果有定位父级相对于定位父

图文讲解:iOS App提交流程

原地址:http://www.toceansoft.com/ios/3287.jhtml 摘要: 由于苹果的机制,在非越狱机器上安装应用必须通过官方的App Store,开发者开发好应用后上传App Store,也需要通过审核等环节.AppCan作为一个跨主流平台的一个开发平台,也对ipa包上传App Store作了支持.本文从三个流程来介绍如何实现AppCan在线编译出ipa包,以及上传到苹果App Store. 一.证书的导出 1.1.前期工作 首先你需要有一个苹果的开发者帐号,一个Mac系

eclipse 发布签名APK图文讲解

eclipse 发布 签名android 程序 1 在项目上右键 export 2 export android application 3 第一次发布 要创建一个新的keystore 4 填写key信息 5 6 finish 第二次发布的时候  可以直接选择已有的keystore 选择以后的alias 或者新建 ok  搞定 eclipse 发布签名APK图文讲解,布布扣,bubuko.com

Android NDK r8 Cygwin CDT 在window下开发环境搭建 安装配置与使用 详细图文讲解

android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创) 一直想搞NDK开发却一直给其他事情耽搁了,参考了些网上的资料今天终于把环境搭建起来了,把过程记录下来分享给大家. 内容目录: 1.默认基础环境 2.NDK下载与配置 3.安装Cygwin 4.用NDK编译 5.安装CDT插件 6.安装Sequoyah插件 7.JNI编译环境配置 画了一个思维导图让大家一目了然配置过程 ---------------------------

【转】android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)

原文网址:http://www.cnblogs.com/zdz8207/archive/2012/11/27/android-ndk-install.html android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创) 一直想搞NDK开发却一直给其他事情耽搁了,参考了些网上的资料今天终于把环境搭建起来了,把过程记录下来分享给大家. 内容目录: 1.默认基础环境 2.NDK下载与配置 3.安装Cygwin 4.用NDK编译 5.安装

图文讲解:什么是数字签名

图文讲解:什么是数字签名 数字签名简单介绍 By David Youd 前言 近期在在网上浏览SSL协议加密有关的文章时,越感对"数字签名"产生了不小的困惑.直接搜索"什么是数字签名",发现了这篇早期文章: http://www.youdzone.com/signature.html,非常早.可是依然耐人寻味.在网贴上也找到了相关的翻译:http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signatur