我有一个如下定义的模态:
<style>
/* The Modal (background) */
.modal {
display: none; /* Hidden by default */
position: fixed; /* Stay in place */
z-index: 2147483647; /* Sit on top */
padding-top: 70px; /* Location of the box */
left: 0;
top: 0;
width: 100%; /* Full width */
height: 100%; /* Full height */
overflow: auto; /* Enable scroll if needed */
background-color: rgb(0,0,0); /* Fallback color */
background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
}
/* Modal Content */
.modal-content {
background-color: #fefefe;
margin: auto;
padding: 20px;
border: 4px solid #7FBE52;
width: 80%;
}
.modal-content h1 {
text-decoration: underline;
text-decoration-color: #7FBE52;
}
/* The Close Button */
.close {
color: #aaaaaa;
float: right;
font-size: 28px;
font-weight: bold;
}
.close:hover,
.close:focus {
color: #000;
text-decoration: none;
cursor: pointer;
}
</style>
<div id="trainerModel10" class="modal" style="display: block;">
<div class="modal-content">
<span id="close" class="close">×</span>
<div style="">
</div>
</div>
</div>
然后进一步进入页脚中的页面,有一幅图像一直位于模式上方。如果根本没有为此图片设置z-index,它将位于模态后面。但是,当设置了z-index时,它会一直浮动在模态顶部。
<style>
.et_pb_column {
margin-right: 0!important;
width: 50%;
margin: 0;
z-index: 1;
float: left;
position: relative;
background-position: center;
background-size: cover;
padding: 0;
border: 0;
outline: 0;
background: 0 0;
font-size: 100%;
vertical-align: baseline;
}
</style>
<div class="et_pb_column et_pb_column_1_2">
<img class="aligncenter size-full wp-image-1032" src=".." alt=".." width="459" height="204">
</div>
可以在此处找到问题的示例页面:https://educatefit.co.uk/search-trainer/personal-trainers-finchley/单击一个配置文件“快速视图”以打开模态,然后向下滚动,使页脚图片浮在模态上方。
即使z-index的设置小于它仍然浮动在其上方的模态,为什么会出现?
答案 0 :(得分:4)
#map + div {
z-index: 1;
}
将修复它。要了解原因,请阅读有关堆栈上下文的信息。
简而言之,原理是:每个元素在被赋予z-index
时,都会在特定的{处为 所有子元素 创建一个堆叠上下文{1}}在包含的堆叠上下文中。因此,在元素内部,子元素上可以有+无限和-无限(理论上,有一个最小值和最大值),它们都将放置在父级堆叠上下文中其元素的z-index
处。
因此,如果我创建两个元素,一个元素为z-index
,另一个元素为z-index:1
,则2的任何子元素都将显示在1的子元素之上,而不管它们的z-index:2
是什么。他们的z-index
仅在他们的楼层上很重要,但它们位于下面的一层。
因此,为了始终能够解决z-index
问题,您需要在要订购的元素之间找到最接近的公共父级,并为您想要的子级提供比z-index
高的子级。您要在下面的孩子。