【问题标题】:Google Chrome - Flexbox + overflow-x:autoGoogle Chrome - Flexbox + 溢出-x:auto
【发布时间】:2015-04-08 17:20:05
【问题描述】:

我在使用 Google Chrome、flexbox 和溢出时遇到了一个奇怪的问题。

当容器处于 flexbox 模式并且子级开始水平溢出时(例如您通过 javascript 更改内容的宽度),滚动条出现但无法操作。

强制浏览器重绘(例如通过调整大小)将使滚动条再次起作用。

这是一个例子:http://jsfiddle.net/w8rtk2de/3/

  • 在谷歌浏览器中
  • 尝试滚动段落
  • 单击“切换类”两次以移除滚动并重新设置它
  • 再次尝试滚动(滚动不起作用)
  • 调整窗口大小以强制重绘
  • 滚动再次起作用
  • 这似乎只在容器处于 display flex 时才会发生。

$('#toggle').on('click', function(e) {
    $('#target').toggleClass('overflowing');
});
.overflowing {
    overflow-x: auto;
    white-space:nowrap;
}

.row {
    display: flex;
}

.col {
    width: 100%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<p><a id="toggle" href="#">Toggle class</a></p>

<div class="row">
    <div class="col">
        <div id="target" class="overflowing">
            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Officiis aspernatur reiciendis amet libero quasi laborum unde sint eum dolores vitae dolorum autem nihil quae voluptatum illo a atque velit placeat.</p>
        </div>
    </div>
</div>

如果有人能快速解决这个问题,那就太好了。

【问题讨论】:

    标签: css google-chrome flexbox


    【解决方案1】:

    好的,马上来:

    我添加了 position:relativez-index:1;

    .overflowing {
      overflow-x: auto;
      white-space:nowrap;
      position: relative;
      z-index: 1;
    }
    

    check on jsFiddle

    【讨论】:

    • 啊!我不知道为什么我没有想到。它似乎只适用于相对位置。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2015-08-26
    • 2020-04-08
    • 1970-01-01
    • 2017-09-25
    • 2017-02-21
    • 2015-02-10
    • 2018-03-03
    • 1970-01-01
    相关资源
    最近更新 更多