mil*_*man 11 html css z-index css-position
我的位置有问题:sticky 和 z-index
我希望我在粘性元素中的模态被覆盖层覆盖。使用 position: relative 可以工作:模态在叠加层之前。但是当我使用 Sticky 时,模态位于覆盖层后面。
希望我的意思可以理解。这是示例:
.sticky {
position: sticky; /* <-- dosen't work */
/* position: relative; /* <-- work */
top: 0;
width: 100%;
height: 200vh;
background: red;
}
.modal {
z-index: 1000;
position: fixed;
margin: 0 auto;
width: 200px;
height: 200px;
background: yellow;
margin: 0 auto;
}
.overlay {
z-index: 999;
position: fixed;
width: 100%;
height: 100%;
background: green;
top: 0;
bottom: 0;
left: 0;
right: 0;
opacity: 0.75;
}Run Code Online (Sandbox Code Playgroud)
<div class="overlay"></div>
<div class="sticky">
<div class="modal">modal</div>
</div>Run Code Online (Sandbox Code Playgroud)
小智 8
设置时position: relative,.modal元素是相对于主体的,因为它具有position: fixed. 因此,1000 的 z-index 值将其置于前台。
当您使用 时position: sticky,.sticky元素被定位,使用默认的 z-index 值。因此,它会将自己定位在后台,因为它.overlay的 z-index 值为 999。.modal作为 的子项.sticky,它永远无法走在 的前面.overlay。
您必须更改 HTML 的结构,或者只是在.sticky元素上添加 z-index 。