css绝对定位分层,css定位position引发的层级关系问题详解

position定位里的absolute,relative和fixed

absolue:绝对定位,用top,bottom,left和right根据有定位的父级元素进行定位,如果无则相对body元素即整个页面文档进行定位。relative:相对定位,相对自己原来的位置进行定位fixed:绝对定位,相对浏览器窗口进行定位(fixed定位会让元素一直处于浏览器某个位置,不会随着滚动条滚动而变化)由position引起的层级关系问题

首先我们要知道,css属性其实是一个立体空间有x,y,z轴,但是只有我们使用了position定位时,z轴上的层级关系才体现出来,即z-index这个属性仅定位元素才有。现在让我们来分析这些层级关系吧。

层级关系如下:

z-index这个属性仅定位元素才有有定位属性的元素默认层级是0,如果层级一样,则后面的元素居上,可以理解z-index:0+absolute定位的元素会让下面元素y轴向上移动,可以理解为absolute定位后该元素变成行级元素了z-index的值越大,离我们观察者越近,比如z-index:2在z-index:1 的上层

229049e54fcca4d83e468a57a76c9f15.gif

css定位position引发的层级关系问题详解-1.jpg (12.16 KB, 下载次数: 1)

2020-7-22 20:01 上传

只有兄弟关系的定位元素才能比较层级

下面让我们来分析上面列出的几点:

分析一下第一点

.c1{

width: 100px;

height: 100px;

background-color: rgb(255, 0, 0);

}

.c2{

width: 200px;

height: 100px;

background-color: rgb(0, 0, 255);;

position: absolute;

top: 50px;

}

c1
&nbsp&nbsp&nbsp&nbspc2

此时c2的层级更高,应该在叠在c1上方

229049e54fcca4d83e468a57a76c9f15.gif

css定位position引发的层级关系问题详解-2.jpg (9.08 KB, 下载次数: 0)

2020-7-22 20:01 上传

分析一下第二点

.c1{

width: 100px;

height: 100px;

background-color: rgb(255, 0, 0);

position: relative;

}

.c2{

width: 200px;

height: 100px;

backgr

此时定位元素都有层级,后面的元素在上面

229049e54fcca4d83e468a57a76c9f15.gif

css定位position引发的层级关系问题详解-3.jpg (6.68 KB, 下载次数: 0)

2020-7-22 20:01 上传

分析一下第三点

.c1{

width: 100px;

height: 100px;

background-color: rgb(255, 0, 0);

position: relative;

此时c3会直接覆盖c2,因为c2的定位是absolute,下面的元素会往c2处移动,由第二点可知,c3在c2的上面,故c3直接盖住了c2

229049e54fcca4d83e468a57a76c9f15.gif

css定位position引发的层级关系问题详解-4.jpg (8.71 KB, 下载次数: 0)

2020-7-22 20:01 上传

分析一下第四点

.c1{

width: 100px;

height: 100px;

background-color: rgb(255, 0, 0);

position: relative;

c1和c2都是定位元素,默认z-index:0,将c1的z-index设置为1,这样c1会在c2的上面

229049e54fcca4d83e468a57a76c9f15.gif

css定位position引发的层级关系问题详解-5.jpg (6.32 KB, 下载次数: 0)

2020-7-22 20:01 上传

分析一下第五点

.c1{

width: 100px;

height: 100px;

background-color: rgb(255, 0, 0);

position: relative;

}

.c2{

width: 200px;

height: 100px;

background-color: rgb(0, 0, 255);;

position: absolute;

z-index: 1;

}

&nbsp&nbsp&nbsp&nbspc2

c1

把c1放在c2里面,即使把c2的z-index设为1,c1依旧在c2上面,说明嵌套元素无层级关系,只有兄弟元素才有层级关系

229049e54fcca4d83e468a57a76c9f15.gif

css定位position引发的层级关系问题详解-6.jpg (6.63 KB, 下载次数: 0)

2020-7-22 20:01 上传

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持咔叽论坛。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值