一、定位

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. tomcat9.0 问题汇总

    安装时提示 Failed installing tomcat9 service 是因为之前安装tomcat,然后直接删除文件夹,虽然把文件夹删除了,但是重新安装时,服务存在相同的服务名,解决办法:使用 ...

  2. Gym - 102040B Counting Inversion (数位dp)

    题意:求[a,b]区间内的数字中正序对的个数. 具体思路参考: https://blog.csdn.net/weixin_43135318/article/details/88061396 https ...

  3. k8sJob控制器

    Job控制器用于调配pod对象运行一次性任务,容器中的进程在正常运行结束后不会对其进行重启,而是将pod对象置于completed状态.若容器中的进程因错误而终止,则需要依据配置确定重启与否,未运行完 ...

  4. 华为集群后killsql命令和查看mr占用的磁盘空间

    (1) linux后台:yarn application -list 找到相应的命令 粘贴job (2)去FI manager 的 yarn上粘贴job 看详细过程 (3)确定后 在linux后台 y ...

  5. VAssistX 常用快捷键

    函数跳转 Alt + G - 函数定义和声明的跳转Alt + O - 在.h与.cpp文件中实现相互转换Alt + M - 列出当前文件所有的函数Ctrl + Tab - 切换标签 查找 Ctrl + ...

  6. C语言 - 堆和栈

    一.堆内存 1.就是程序员手动管理的一块内存,在C语言中,可以理解为用malloc.realloc等申请空间的一些函数,这些函数所申请的空间就是堆空间 2.C语言中,堆空间是申请和释放 malloc/ ...

  7. Spring boot之Hello World访问404

    (1)404 -- 确定地址是否输入正确,,此路径非彼路径 (2)404 -- 是否用对注解,此注解非彼注解 (3)404 -- 包路径是否正确,此包非彼包 (4)404 -- 确认类包是否正确,此类 ...

  8. Eclipse常用快捷键与IDEA中的对比.

    最近从github下载了一些项目,但是看了一下使用的编译器是IDEA的,所以就下载了一个IDEA. 这边可以提供几个网址:只要是针对各个下载idea之后的一些激活相关的帮助. http://idea. ...

  9. C++入门经典-例3.20-使用continue跳出循环

    1:continue不是立即跳出循环体,而是跳过本次循环结束前的语句,回到循环的条件测试部分.代码如下: // 3.20.cpp : 定义控制台应用程序的入口点. // #include " ...

  10. 53道java多线程面试题整理及答案(2018年)

    最近看到网上流传着,各种面试经验及面试题,往往都是一大堆技术题目贴上去,而没有答案. 为此我业余时间整理了Java多线程相关的53道常见面试题,及详细答案,你可以用它来好好准备面试.望各路大牛,发现不 ...