Z 索引不起作用

Z-index does not work

我在使用 z-index 属性 时遇到了一些问题。下面你可以看到一个例子:

<div id="popup">
  <div id="button">
  </div>
</div>

<div id="trip">
</div>

<div id="gray">
</div>

https://jsfiddle.net/cf5dhv39/1/

如您所见,我希望 div #button 覆盖 div #gray(就像 div #trip 一样), 但是,无论我在 #button 中增加多少 z-index,按钮都不会覆盖 #gray

这是因为 #popupz-index 小于 #gray#button 是 child 的 #popup 所以它总是在 #gray 后面,但是你可以把 #gray 放在 #popup 里面

div{
  width: 100px;
  height: 100px;
  background: black;
  position: relative;
}

#popup{
  z-index: 100;
  width: 300px;
  height: 300px;
}

#button{  
  top: 10px;
  left: 10px;
  z-index: 2;
  background: green;
}

#trip{
  top: 40px;
  left: 10px;
  background: blue;
  z-index: 1000;
}

#gray{
  width: 100%;
  height: 100%;
  position: fixed;
  background: gray;
  top: 0px;
  left: 0px;
  opacity: 0.5;
  z-index: 1;
}
<div id="popup">
  <div id="button"></div>
  <div id="gray"></div>
</div>

<div id="trip"></div>