一、定位

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

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

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

(1)static 定位

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

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

(2)relative 相对定位

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

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

相对定位的规律:

CSS

  1. #third {
  2. background-color:#C5DECC;
  3. border:1px #395E4F dashed;
  4. position:relative;
  5. right:20px;
  6. bottom:30px;
  7. }

对浮动元素设置相对定位:
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

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

HTML

  1. <div class="div">
  2. <img src="mm1.jpg" />
  3. <p>无absolute</p>
  4. </div>
  5. <div class="div abs">
  6. <img src="mm1.jpg" />
  7. <p>absolute后</p>
  8. </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

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

HTML

  1. <div class="div">
  2. <img src="mm1.jpg" />
  3. <p>图片无absolute</p>
  4. </div>
  5.  
  6. <div class="div">
  7. <img class="abs" src="mm1.jpg" />
  8. <p>图片absolute后</p>
  9. </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. GoAccess安装及分析nginx实时日志

    GoAccess是一个基于终端的快速日志分析器.其核心思想是实时快速分析和查看Web服务器统计信息,而无需使用您的浏览器(如果您希望通过SSH快速分析访问日志,或者只是喜欢在终端中工作),终端输出是默 ...

  2. poj1830 开关问题[高斯消元]

    其实第一反应是双向BFS或者meet in middle,$2^{14}$的搜索量,多测,应该是可以过的,但是无奈双向BFS我只写过一题,已经不会写了. 发现灯的操作情况顺序不影响结果,因为操作相当于 ...

  3. TCP/IP网络编程系列之一(初级)

    概述 网络编程实际上就是编写程序使两台联网的计算机相互的交换数据.操作系统会提供名为“ 套接字 ”的部件.套接字是网络数据传输的软件设备,即使对网络数据传输原理不太熟悉也无关紧要.我们也能通过套接字完 ...

  4. 本机的IP地址无法打开(Vue项目)

    1, 首先找到使用vue脚手架建立项目config文件中的index.js文件2, 修改dev里面的host属性值:改成 host: ‘0.0.0.0’3, 最后在局域网下,使用自己的ip进行连接,同 ...

  5. python查询mysql数据(3)

    python查询mysql数据(3) """数据查询""" import pymysql import datetime from pymy ...

  6. eclipse导入tomcat时Unknown version of Tomcat was specified

    Unknown version of Tomcat was specified 的原因有2种可能: 1 路径不是真正的路径,可能是其子路径,要找到bin路径. 2 安装目录没有访问权限. 我的就是第2 ...

  7. SEO搜索引擎优化是什么?

    ㈠什么是SEO? 搜索引擎优化,又称为SEO,即Search Engine Optimization,它是一种通过分析搜索引擎的排名规律,了解各种搜索引擎怎样进行搜索.怎样抓取互联网页面.怎样确定特定 ...

  8. MyBatis中的JdbcType映射介绍

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.                                               本 ...

  9. 下载excle文件之工具

    创建万能的工具类,已备用 ExcelData.java 存放文件数据 package com.ulic.gis.dataCenter.util; import java.io.Serializable ...

  10. EventChannel 原生向Flutter传递数据

    目的:原生页面主动向Flutter页面传递信息 1 flutter步骤 定义EventChannel static const EventChannel eventChannel = EventCha ...