css中的层叠问题
文章类型:CSS
发布者:hp
发布时间:2025-02-14
在项目开发过程中,我们有些元素需要浮在元素上面,那么就会使用z-index属性
1:z-index属性值仅在定位元素上有效果,且属性不是static值。
2:堆叠顺序不仅仅是直接比较两个元素值大小,实际由元素的层叠上下文、层叠等级决定
(1):层叠上下文
1:是html中的三维概念,分别是对应平面画布中的X轴、Y轴、以及表示层叠的Z轴。
2:元素一旦发生堆叠,某个元素会被覆盖
3:如果有层叠上下文,那么就认为这个元素在Z轴上,表现出来离屏幕观察着更近
(2):层叠等级
1:层叠上下文中的层叠上下文元素在Z轴上的上下顺序
(3):结论
1:普通元素的层叠等级优先由所在的层叠上下文决定
2:层叠等级的比较只有在当前层叠上下文元素中才有意义
1:Html中根元素<html></html>,称为“根层叠上下文”
2:普通元素设置postion并且设置z-index属性为具体数值,
3:CSS3新属性
<style>
div {
position: relative;
width: 100px;
height: 100px;
}
p {
position: absolute;
font-size: 20px;
width: 100px;
height: 100px;
}
.a {
background-color: blue;
z-index: 1;
}
.b {
background-color: green;
z-index: 2;
top: 20px;
left: 20px;
}
.c {
background-color: red;
z-index: 3;
top: -20px;
left: 40px;
}
</style>
<body>
<div>
<p class="a">a</p>
<p class="b">b</p>
</div>
<div>
<p class="c">c</p>
</div>
</body>
1:定义
表示元素发生层叠时按照特定的顺序规则在Z轴上垂直显示
2:图解
1:“层叠上下文”和“层叠等级”是一种概念,而这里的“层叠顺序”是一种规则
2:z-index只有在定位元素有效,且值不能为static