问题
iOS 6似乎为position
以外的static
创建了一个新的堆叠上下文,而不管z-index
是否设置。
有人知道这是正常的预期行为,还是-webkit-overflow-scrolling
干扰堆叠顺序的错误?
示例
请参阅下面的代码,或JSFiddle
row
个元素的位置relative
,但没有z-index
。我的笔记本电脑上的谷歌浏览器和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'标记这篇文章,但我没有足够的声誉来创建一个新的。