要点:

1、绝对元素脱离文档流#

它从文档流中脱离了出来,后面的元素会填充掉它原来的位置

2、绝对定位元素定位#

以离他最近的、有定位的、祖先元素 为准

参照对象决定元素的位置

情况1

<div (黄框)  position:relative; ——不是最近的祖先定位元素,不是参照物
<div(绿框)——没有设置为定位元素,不是参照物
<div(篮框) position:relative ——设置为定位元素,最近祖先,参照物
<div box1
<div box2 position:absolute; top:50px; left:120px;
<div box3

情况2

<div (黄框)  position:relative; ——设置为定位元素,最近祖先,参照物
<div(绿框)——没有设置为定位元素,不是参照物
<div(篮框) ——不是最近的祖先定位元素,不是参照物
<div box1
<div box2 position:absolute; top:50px; left:120px;
<div box3

情况3

<div (黄框)  ——没有设置为定位元素,不是参照物
<div(绿框)——没有设置为定位元素,不是参照物
<div(篮框) ——没有设置为定位元素,不是参照物
<div box1
<div box2 position:absolute; top:50px; left:120px;
<div box3

情况4

<div position:relative; ——祖先定不定位无效,不是参照物
<div——祖先定不定位无效,不是参照物
<div——祖先定不定位无效,不是参照物
<div box1
<div box2 position:absolute; margin-top:50px; margin-left:120px;
<div box3

【情况4说明】margin-bottom 和margin-right的值不再对文档流中的元素产生影响,因为该元素已经脱离了文档流。另外,不管它的祖先元素有没有定位,都是以文档流中原来所在的位置上偏移参照物。

3、元素的自动伸缩功能

(1) width 设置为 auto 的时候(或者不设置,默认为 auto ),绝对定位元素会根据其 left 和 right 自动伸缩其大小

①left 和 right 都为0,则该元素会填充满其相对的元素

(2)若将宽度设置为固定值

①这时绝对定位元素会优先取 left 值作为定位标志(这个标准适用于从左向右读的文档流中,而在少数从右往左读的文档流中,则优先取 right)。

②水平居中:在 margin: auto 下,只要 left 和 right 的值相等,且不超过其相对元素减去该绝对定位元素 width 的一半,就可以实现水平居中;如果其 left 超出了范围,那么会取 left 的值作为定位(从左向右的文档流);

③垂直居中:无论 top 和 bottom 的值设置为多少,只要相等,就可以垂直居中

参考http://blog.csdn.net/devilpace/article/details/51912382

”position”之绝对定位深入理解的更多相关文章

  1. position:absolute绝对定位解读

    position:absolute绝对定位解读  摘要   用四段代码解释absolute的定位问题,进而从概念的角度切实解决html布局问题. 一.背景 常常遇到这样一些问题,很容易混淆.“浏览器屏 ...

  2. position: absolute;绝对定位水平居中问题

    position: absolute;绝对定位水平居中问题 用CSS让元素居中显示并不是件很简单的事情—同样的合法CSS居中设置在不同浏览器中的表现行为却各有千秋.让我们先来看一下CSS中常见的几种让 ...

  3. css hover 动画 transition:background-color 0.2s,color 0.2s; 外层套内层,正常是 里外层 鼠标上来 外层有hover,如果就想到里层hover触发外层hover,要用外层position 定义绝对定位,内层的hover跳出外层的div,这样视觉上就是两个单独的div,进行内外层联动。

    css hover 动画 transition:background-color 0.2s,color 0.2s; 外层套内层,正常是 里外层 鼠标上来 外层有hover,如果就想到里层hover触发 ...

  4. css中position:relative的真正理解

    其实话说一直以来也没真正去理解好position:relative的用法的真实意义. 我想很多人实实在在用的多都是position:relative和position:absolute结合起来一起用的 ...

  5. position absolute 绝对定位 设置问题

     今天在做布局的时候,用到了绝对定位, 父级元素相对定位,子元素两个,一个元素正常文档流布局并且在前面,另一个元素绝对定位排在后面,但设置了好久,绝对定位的子元素都不会覆盖其上面的兄弟元素,最后,不知 ...

  6. css的position,float属性的理解

    我们知道,html是按照普通流来加载的,这个时候我们有些需求就不好实现.因此出现了非普通流: 1.普通流:按照顺序正常的排列,长度或不够就往下挤.position默认的static 2.非普通流:脱离 ...

  7. background,position,绝对定位中位置属性的定位规则,cursor

    backgorund背景 background-color:red; 背景颜色 background-image:url(路径);背景图片 background-repeat:no-repeat;不重 ...

  8. Position 属性的学习理解

    position 当时在学习的时候也没有进入深入的研究,主要是因为平时自己用的不是很多.今天看到了篇解释不错的文章就整理,学习下. http://www.cnblogs.com/bokin/archi ...

  9. 关于HTML中,绝对定位,相对定位的理解...(学习HTML过程中的小记录)

    关于HTML中,绝对定位,相对定位的理解...(学习HTML过程中的小记录)   作者:王可利(Star·星星) HTML中 相对定位:position:relative; 绝对定位:position ...

随机推荐

  1. C#设计模式(5)——建造者模式

    一.概念 建造者模式将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示. 二.模型 三.代码实现 /// <summary> /// 建造者模式的演变 /// 省略了指挥 ...

  2. day10servlet编程

    Servlet学习的大纲:  . servlet概念及相关接口简介  . servet 执行过程  . servlet路径映射  . 缺省servlet --应用  . servlet生命周 ...

  3. bootstrap的popover()的使用

    有一些选项是通过 Bootstrap 数据 API(Bootstrap Data API)添加或通过 JavaScript 调用的.下表列出了这些选项: 选项名称 类型/默认值 Data 属性名称 描 ...

  4. HDU - 5451 Best Solver(循环节+矩阵快速幂)

    Best Solver The so-called best problem solver can easily solve this problem, with his/her childhood ...

  5. js上传文件到后台时序列化数据

    let fd = new FormData() // 定义传递的序列化对象,for (let i = 0; i < addArr.length; i++) { // addArr是选中文件的输入 ...

  6. 51nod1113(矩阵快速幂模板)

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1113 题意:中文题诶- 思路:矩阵快速幂模板 代码: #inc ...

  7. 静态文件与APP

    目录 静态文件的配置和使用 什么是静态文件? 为什么使用静态文件 如何配置,使用静态文件 静态文件相关(动态配置) app创建预注册 app指什么? 创建一个APP 注册app app文件作用 app ...

  8. Vue2中实现微信分享支付功能

    Vue2中实现微信分享支付功能  近期做了一个微信公众号前后分离项目,前端采用Vue2开发,后端SpringBoot,今天迫不及待的来给大家分享一下这次在开发中遇到的一些坑以及解决办法. 在这里,一些 ...

  9. 联盟链FISCO BCOS权限控制一览

    FISCO BCOS是完全开源的联盟区块链底层技术平台,由金融区块链合作联盟(深圳)(简称金链盟)成立开源工作组通力打造.开源工作组成员包括博彦科技.华为.深证通.神州数码.四方精创.腾讯.微众银行. ...

  10. Mac中文输入法无选字框了?

    按F4键,把其它中的活动监视器打开,选简体中文输入法进程,双击点退出 ,再点强制退出,关了吧.再打字,好用了-