如何解决css定位位置引发的层级关系问题

  

这篇文章主要介绍了如何解决css定位位置引发的层级关系问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

<强>位置定位里的绝对和相对固定的

<李>

absolue:绝对定位,用顶部,底部,左和右根据有定位的父级元素进行定位,如果无则相对身体元素即整个页面文档进行定位。

<李>

相对:相对定位,相对自己原来的位置进行定位

<李>

固定:绝对定位,相对浏览器窗口进行定位(固定定位会让元素一直处于浏览器某个位置,不会随着滚动条滚动而变化)

<强>由位置引起的层级关系问题

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

<强>层级关系如下:

<李>

z - index这个属性仅定位元素才有

<李>

有定位属性的元素默认层级是0,如果层级一样,则后面的元素居上,可以理解z - index: 0 +

<李>

绝对定位的元素会让下面元素y轴向上移动,可以理解为绝对定位后该元素变成行级元素了

<李>

z - index的值越大,离我们观察者越近,比如z - index: 2在z - index: 1的上层

如何解决css定位位置引发的层级关系问题

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

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

分析一下第一点

& lt; style>   .c1 {   ,,,宽度:,100 px;   ,,,身高:,100 px;   background - color,,,:, rgb (255, 0, 0);   }   .c2 {   ,,,宽度:,200 px;   ,,,身高:,100 px;   background - color,,,:, rgb (0, 0, 255);;   ,,,位置:,绝对;   ,,,:,50 px;      ,,,,,,,,,,}   & lt;/style>   & lt; body>,   ,,,,,,,& lt; div 类=癱1"祝辞c1
  ,,,,,,,& lt; div 类=癱2"祝辞,nbsp& nbsp& nbsp& nbspc2
  & lt;/body>

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

如何解决css定位位置引发的层级关系问题

分析一下第二点

& lt; style 类型=拔谋?css"比;   ,,,,,,,,,,.c1 {   ,,,,,,,,,,,,,,,宽度:,100 px;   ,,,,,,,,,,,,,,,身高:,100 px;   ,,,,,,,,,,,,,,,背景颜色:,rgb (255, 0, 0);   ,,,,,,,,,,,,,,,位置:,相对;      ,,,,,,,,,,}   ,,,,,,,,,,.c2 {   ,,,,,,,,,,,,,,,宽度:,200 px;   ,,,,,,,,,,,,,,,身高:,100 px;   ,,,,,,,,,,,,,,,backgr

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

如何解决css定位位置引发的层级关系问题

分析一下第三点

& lt; style 类型=拔谋?css"比;   ,,,,,,,,.c1 {   ,,,,,,,,,,,,,,,宽度:,100 px;   ,,,,,,,,,,,,,,,身高:,100 px;   ,,,,,,,,,,,,,,,背景颜色:,rgb (255, 0, 0);   ,,,,,,,,,,,,,,,位置:,相对;

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

如何解决css定位位置引发的层级关系问题

分析一下第四点

& lt; style 类型=拔谋?css"比;   ,,,,,,,,,,.c1 {   ,,,,,,,,,,,,,,,宽度:,100 px;   ,,,,,,,,,,,,,,,身高:,100 px;   ,,,,,,,,,,,,,,,背景颜色:,rgb (255, 0, 0);   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

如何解决css定位位置引发的层级关系问题