-webkit-overflow-scrolling:touch在没有z-index的元素上创建新的堆叠上下文

时间:2013-08-19 15:41:58

标签: css scroll ios8 ios6 z-index

问题

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'标记这篇文章,但我没有足够的声誉来创建一个新的。

0 个答案:

没有答案