z-index + overflow:auto = 错误?

z-index + overflow:auto = bug?

我将弹出窗口设为 position:fixed div 并通过层次结构 z-index 进行传播,以确保此 div 位于所有内容之上。一切都很好,除了 Chrome 在我的弹出窗口上滚动时 iOS safari 剪辑我的弹出窗口的情况。

我做了超级小的复刻https://codepen.io/heavenmaster/pen/XWrQmZY 注意,位置 absolute 和设置 z-index 对我来说很重要。

我迫切需要一个解决方法。

.scrollview {
  z-index: 1;
  position: absolute;
  margin: 100px;
  width: 200px;
  height: 200px;
  border: solid gray 1px;
  overflow: auto;
}

.container {
  z-index: 1;
  position: absolute;
  width: 1000px;
  height: 1000px;
}

.tooltip {
  z-index: 1;
  width: 250px;
  height: 50px;
  border: solid 1px gray;
  background: silver;
  position: fixed;
  left: 80px;
  top: 80px;
}
<div class='scrollview'>
  <div class='container'>
    <div class='tooltip'>Tooltip</div>
  </div>
</div>

好的,让我们尝试一下,希望对您有所帮助:

.scrollview1
{
  z-index: 1;
    position: absolute;
    margin: 100px;
    width: 250px;
    height: 200px;
}
.scrollview
{
  z-index: 1;
/*   position: absolute; */
/*   margin: 100px; */
  width: 200px;
  height: 200px;
  border: solid gray 1px;
  overflow: auto;
}

.container{
  z-index: 1;
/*   position: absolute; */
  width: 1000px;
  height: 1000px;  
}

.tooltip{
  z-index: 1;
  width: 250px;
  height: 50px;
  border: solid 1px gray;
  background: silver;
  position: fixed;
  left: 80px;
  top: 80px;
}
<div class='scrollview1'><div class='scrollview'>   
  <div class='container'>    
    <div class='tooltip'>Tooltip</div>    
  </div>  
  </div></div>