问题
iOS 6 似乎为每个后代创建了一个新的堆叠上下文,而position
不是static
不管是否z-index
设置。
有谁知道这是否是正常的预期行为,或者这是一个-webkit-overflow-scrolling
干扰堆叠顺序的错误?
例子
请参阅下面的代码或JSFiddle
两个row
元素都有位置relative
,但没有z-index
。我笔记本电脑上的 Google Chrome 和 Safari 都在第二个row
.
在 iOS 模拟器上测试示例时,“子菜单”呈现在第二个row
. 删除-webkit-overflow-scrolling: touch
它后,它就像我预期的那样呈现。
在我看来,添加-webkit-overflow-scrolling: touch
为每个后代创建了一个新的堆叠上下文,并且static
无论是否z-index
设置了位置。
<style>
div.content {
-webkit-overflow-scrolling: touch;
}
div.row {
width: 100%;
position: relative;
background: red;
margin-bottom: 10px;
}
div.sub {
position: absolute;
top: 100%;
z-index: 2;
background: blue;
}
</style>
<div class="content">
<div class="row">
A
<div class="sub">
Sub menu of A<br>
Sub menu of A<br>
Sub menu of A<br>
Sub menu of A<br>
</div>
</div>
<div class="row">
B
</div>
</div>
```
** 附加说明 ** 我想用“-webkit-overflow-scrolling”标记这篇文章,但我没有足够的声誉来创建一个新的。