一、定位

position属性————规定元素的定位类型,即元素脱离文档流的布局,在页面的任意位置显示

也可以参见以前的总结 <—— 戳

  • static:默认值,没有定位
  • relative:相对定位
  • absolute:绝对定位
  • fixed:固定定位

(1)static 定位

没有定位,以标准流方式显示

不会受到top, bottom, left, right影响

(2)relative 相对定位

相对自身原来位置进行偏移
偏移设置:top、left、right、bottom

经常被用来作为绝对定位元素的容器块

相对定位的规律:

CSS

#third {
background-color:#C5DECC;
border:1px #395E4F dashed;
position:relative;
right:20px;
bottom:30px;
}

对浮动元素设置相对定位:
A. 设置第二个盒子右浮动,再设置第一、第二盒子相对定位

(3)绝对定位

使用了绝对定位的元素以它最近的一个“已经定位”的“祖先元素” 为基准进行偏移
如果没有已经定位的祖先元素,会以浏览器窗口为基准进行定位
绝对定位的元素从标准文档流中脱离,这意味着它们对其他元素的定位不会造成影响
元素位置发生偏移后,它原来的位置不会被保留下来

定位的起始位置为最近的父元素(只要把父元素的position设定为relative/fixed即可),否则为Body文档本身

绝对定位不设置偏移量

设置了绝对定位但没有设置偏移量的元素将保持在原来的位置。
在网页制作中可以用于需要使某个元素脱离标准流,而仍然希望它保持在原来的位置的情况

(4)固定定位

类似绝对定位,不过区别在于定位的基准不是祖先元素,而是浏览器窗口

二、定位小结

(1)相对    定位的特性

  1. 相对于自己的初始位置来定位
  2. 元素位置发生偏移后,它原来的位置会被保留下来
  3. 层级提高,可以把标准文档流中的元素及浮动元素盖在下边

(2)相对定位的使用场景
相对定位一般情况下很少自己单独使用,都是配合绝对定位使用,为绝对定位创造定位父级而又不设置偏移量

(1)绝对    定位的特性

  1. 绝对定位是相对于它的定位父级的位置来定位,如果没有设置定位父级,则相对浏览器窗口来定位
  2. 元素位置发生偏移后,原来的位置不会被保留
  3. 层级提高,可以把标准文档流中的元素及浮动元素盖在下边
  4. 设置绝对定位的元素脱离文档流

(2)绝对定位的使用场景
一般情况下,绝对定位用在下拉菜单、焦点图轮播、弹出数字气泡、特别花边等场景

(1)固定    定位的特性

  1. 相对浏览器窗口来定位
  2. 偏移量不会随滚动条的移动而移动

(2)固定定位的使用场景
一般在网页中被用在窗口左右两边的固定广告、返回顶部图标、吸顶导航栏

position属性与浮动同时使用情况:

浮动和定位属性的区别

position: absolute会导致元素脱离文档流,被定位的元素在文档中不占据任何位置。

float也会导致元素脱离文档流,但还在文档或容器中占据位置,把文档流和其它float元素向左或向右挤,并可能导致换行。

display的inline-block不脱离文档流,将block元素当作大型字符嵌入文档流内。

三、透明度

四、z-index

z-index只能在position属性值为relative或absolute或fixed的元素上有效

哪个大,哪个在屏幕最上方

网页中的元素都含有两个堆叠层级

  • 未设置绝对定位时所处的环境,z-index是0
  • 设置绝对定位时所处的堆叠环境,此时层的位置由z-index的值确定

改变设置绝对定位和没有设置绝对定位的层的上下堆叠顺序,只需调整绝对定位层的z-index值即可

父元素是不可添加z-index值的,否则会导致错误。但是如果  parent1   元素和   parent2   元素相对于body又是子元素,那么他俩就可以进行比较了。

五、包裹性和破坏性

包裹性
包裹性换种说法就是让元素inline-block例如一个div标签默认宽度是100%显示的,但是  一旦被absolute属性缠上,则100%默认宽度就会变成自适应内部元素的宽度。  如下测试代码:

CSS

.div { padding:20px; margin-bottom:10px; background-color:#f0f3f9; }
.abs { position:absolute; }

HTML

<div class="div">
<img src="mm1.jpg" />
<p>无absolute</p>
</div>
<div class="div abs">
<img src="mm1.jpg" />
<p>absolute后</p>
</div>

例如平时我们要让span标签支持width属性,可能要设置:

span { display:block; width:100px; }

但是,float:left/position:absolute的情况下,display属性就是多余的,可以直接回家喝茶了。

span { float:left; width:100px; }

span { position:absolute; width:100px; }

破坏性

浮动的破坏性在于切断line box链,致使高度塌陷,但由于浮动元素实体是看得见摸得着的,所以其占据的实体位置还是在的。而absolute绝对定位不仅让高度塌陷,宽度也是塌陷的。

示例如下:

CSS

.div { padding:20px; margin:10px 0 0 10px; background-color:#f0f3f9; float:left; }.abs { position:absolute; }

HTML

<div class="div">
<img src="mm1.jpg" />
<p>图片无absolute</p>
</div> <div class="div">
<img class="abs" src="mm1.jpg" />
<p>图片absolute后</p>
</div>

定位网页元素、透明度、z-index、包裹性和破坏性的更多相关文章

  1. Selenium 定位网页元素

    第一 定位元素辅助工具 IE中在元素上右击 ->  “检查元素”,或按F12键打开开发者工具: Chrome中在元素上右击 -> “审查元素”,或按F12键打开开发者工具: Firefox ...

  2. 使用原生JS定位网页元素

    约定:1.<meta name="viewport" content="width=device-width">这种标记简称"wdw&qu ...

  3. float包裹性与破坏性及清除浮动几种方法

    1. “清除浮动” ??准确的描述应该是“清除浮动造成的影响”  学习视频录制推荐的教程<CSS深入理解之float浮动> 2.如何清除浮动造成的影响??? 栗子 块级div元素包含一个内 ...

  4. 在selenium测试中使用XPATH功能函数starts-with、contains、descendant、ancestor、text()定位网页元素

    项目中一些使用xpath函数的复杂例子,记录于此 1. 使用starts-with //div[starts-with(@id,'res')]//table//tr//td[2]//table//tr ...

  5. CSS定位网页中的元素

    relative相对定位 偏移设置:left.right.top.bottom 值单位:px 元素的规律: 相对定位元素的规律 设置相对定位的盒子会相对它原来的位置通过指定偏移,到达新的位置. 设置相 ...

  6. selenium3+python3自动化测试学习之网页元素定位

    selenium基础实战之定位网页元素技巧 selenium定位网页元素 find_element_by_id,find_element_by_name,find_element_by_class_n ...

  7. 使用Selenium对网页元素进行定位的诸种方法

    使用Selenium进行自动化操作,首先要做的就是通过webdriver的get()方法打开一个URL链接. 在打开链接,完成页面加载之后,就可以通过Selenium提供的接口,在页面上进行各种操作了 ...

  8. css015 定位网页上的元素

    css015 定位网页上的元素 一.   定位属性的功能 1.         四中类型的定位 Position: absolute relative fixed static a. 绝对定位 绝对定 ...

  9. 网页元素定位Position

     第九章: 网页元素定位Position position属性 static:默认值,没有定位 relative:相对定位 absolute:绝对定位 fixed:固定定位  (一般不用) stati ...

随机推荐

  1. exec模块,元类与ORV的应用

    exec模块的补充 1.是什么? exec是一个Python内置模块. 2.exec的作用: ''' x = 10 def func1(): pass ''' 可以把"字符串形式" ...

  2. HDU - 6704 K-th occurrence (后缀数组+主席树/后缀自动机+线段树合并+倍增)

    题意:给你一个长度为n的字符串和m组询问,每组询问给出l,r,k,求s[l,r]的第k次出现的左端点. 解法一: 求出后缀数组,按照排名建主席树,对于每组询问二分或倍增找出主席树上所对应的的左右端点, ...

  3. ZOJ3471Most Powerful(状态压缩)

    问题 Recently, researchers on Mars have discovered N powerful atoms. All of them are different. These ...

  4. HDU6736 2019CCPC秦皇岛赛区 F. Forest Program

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=6736思路:dfs+栈 判环           设图中环的大小分别为 c1, c2, ..., ck,不属 ...

  5. php的流程控制 if elseif swich case for循环

    if ......else 最简形式: <?php                              if (true){ echo "晚上找昌仔训练去";}?> ...

  6. qt5--表格控件QTableWidget

    需要    #include <QTableWidget>      #include <QTableWidgetItem> #include "win.h" ...

  7. C# 计时函数(毫秒)

    using System; using System.Diagnostics; using System.Runtime.InteropServices; using System.Threading ...

  8. JavaScript 数组1—索引数组

    索引数组:下标是数字数组 ㈠什么是? 内存中连续储存多个数据的数据结构,再起一个统一的名字 ㈡为什么? ①普通的变量只能存储一个数据程序=数据结构+算法 ②算法:解决问题的步骤 ③数据结构:数据在内存 ...

  9. python 正则表达式实例:

    #!/usr/bin/python import re line = "Cats are smarter than dogs" matchObj = re.match( r'(.* ...

  10. js 获取系统时间:年月日 星期 时分秒(动态)

    最近再写一个纯html页面,有时间和天气的数据,天气后台给接口,时间要自己获取,我就自己弄了下, <div class="basic"></div> 这是放 ...