”position”之绝对定位深入理解
要点:
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”之绝对定位深入理解的更多相关文章
- position:absolute绝对定位解读
position:absolute绝对定位解读 摘要 用四段代码解释absolute的定位问题,进而从概念的角度切实解决html布局问题. 一.背景 常常遇到这样一些问题,很容易混淆.“浏览器屏 ...
- position: absolute;绝对定位水平居中问题
position: absolute;绝对定位水平居中问题 用CSS让元素居中显示并不是件很简单的事情—同样的合法CSS居中设置在不同浏览器中的表现行为却各有千秋.让我们先来看一下CSS中常见的几种让 ...
- 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触发 ...
- css中position:relative的真正理解
其实话说一直以来也没真正去理解好position:relative的用法的真实意义. 我想很多人实实在在用的多都是position:relative和position:absolute结合起来一起用的 ...
- position absolute 绝对定位 设置问题
今天在做布局的时候,用到了绝对定位, 父级元素相对定位,子元素两个,一个元素正常文档流布局并且在前面,另一个元素绝对定位排在后面,但设置了好久,绝对定位的子元素都不会覆盖其上面的兄弟元素,最后,不知 ...
- css的position,float属性的理解
我们知道,html是按照普通流来加载的,这个时候我们有些需求就不好实现.因此出现了非普通流: 1.普通流:按照顺序正常的排列,长度或不够就往下挤.position默认的static 2.非普通流:脱离 ...
- background,position,绝对定位中位置属性的定位规则,cursor
backgorund背景 background-color:red; 背景颜色 background-image:url(路径);背景图片 background-repeat:no-repeat;不重 ...
- Position 属性的学习理解
position 当时在学习的时候也没有进入深入的研究,主要是因为平时自己用的不是很多.今天看到了篇解释不错的文章就整理,学习下. http://www.cnblogs.com/bokin/archi ...
- 关于HTML中,绝对定位,相对定位的理解...(学习HTML过程中的小记录)
关于HTML中,绝对定位,相对定位的理解...(学习HTML过程中的小记录) 作者:王可利(Star·星星) HTML中 相对定位:position:relative; 绝对定位:position ...
随机推荐
- 利用正则表达式类解析SQL语句,达到Worklist兼容各个RIS数据库的目的
在做RIS的项目中遇到一个问题, 因为Worklist要兼容各个RIS数据库, 因此设计了目前这个架构. 1.xml文件来配置RIS数据库的数据源, 2.xml文件来存储关于查询/更新数据库的SQL语 ...
- 组播基本概念、IGMP、IGMP监听学习笔记
前言 一直对组播这个概念迷迷糊糊,特别是交换机处理组播的方式,非常想搞懂但是懒癌发作.这几天终于耐心地看了下有关组播的资料,大致了解了一下同一广播域内组播的相关知识.组播占了计算机网络的一大部分,特别 ...
- springboot集成报错,想要集成tk.mybatis报错,反射方法异常
在添加注释 @MapperScan("com.leyou.item.mapper")的时候,如果不小心就会导包倒错应该导成 import tk.mybatis.spring.ann ...
- C# 32位程序在64位系统下注册表操作
在64位的Windows操作系统中,为了兼容32位程序的运行,64位的Windows操作系统采用重定向机制.目的是为了能让32位程序在64位的操作系统不仅能操作关键文件文夹和关键的注册表并且又要避免与 ...
- STL::next_permutation();
next_permutation()可以按字典序生成所给区间的全排列. 在STL中,除了next_permutation()外,还有一个函数prev_permutation(),两者都是用来计算排列组 ...
- day1 java基础回顾-泛型
2.泛型(Generic) 当集合中存储的对象类型不同时,那么会导致程序在运行的时候的转型异常 1 import java.util.ArrayList; 2 import java.util.Ite ...
- hdu3047 Zjnu Stadium (并查集)
Zjnu Stadium Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
- 2.5玩转xargs
我们可以利用管道将一个命令的stdout(标准输出)重定向到另一个命令的stdin(标准输入).有些命令只能以命令行参数的形式接受数据,而无法通过stdin接受数据流.这时候就没法使用管道.那么xar ...
- JAVA学习笔记——(四)
今日内容介绍 1.流程控制语句switch 2.数组 3.随机点名器案例 01switch语句解构 * A:switch语句解构 * a:switch只能针对某个表达式的值作出判断,从而决定程序执行哪 ...
- ACM-ICPC2018徐州网络赛 Hard to prepare(dp)
Hard to prepare 28.63% 1000ms 262144K After Incident, a feast is usually held in Hakurei Shrine. T ...