【问题标题】:CSS3 - Flex wrap not working on IOS 10.1.1 Safari & ChromeCSS3 - Flex wrap 在 IOS 10.1.1 Safari 和 Chrome 上不起作用
【发布时间】:2017-05-10 21:19:16
【问题描述】:

我正在尝试将 flex wrap 和 min-width: 50% 用于单个单元格占据所有宽度的动态网格布局。问题是它在 iOS 10.1.1 (iPhone 5c) Safari 和 Chrome 中无法正常工作 - 显示不是网格状的,而是水平布局。在桌面 Chrome (Ubuntu) 和 Android Chrome 中运行良好。

Jsfiddle 演示:https://jsfiddle.net/9dscc1Lq/

代码:

<style>

body {
    width: 300px;
}

.tabs {
    width: 100%;
    display: flex;
    display: -webkit-flex;
    flex-wrap: wrap;
    -webkit-flex-wrap: wrap;
    flex: 0 0 auto;
    -webkit-flex: 0 0 auto;
    box-sizing: border-box;
    flex-flow: row wrap;
    -webkit-flex-flow: row wrap;
}

.tab {
    border: 1px solid #3A3A3A;
    color: #929292;
    min-width: 50%;
    box-sizing: border-box;
    flex: 1 1 0;
    -webkit-flex: 1 1 0;
    text-align: center;
}

</style>

<div class="tabs">
    <div class="gwt-HTML tab">1</div>
    <div class="gwt-HTML tab">2</div>
    <div class="gwt-HTML tab">3</div>
    <div class="gwt-HTML tab">4</div>
    <div class="gwt-HTML tab">5</div>
</div>

预期布局(正确):

iOS 行为(不正确):

请指教!

【问题讨论】:

    标签: ios css flexbox


    【解决方案1】:

    min-width 在 iOS 上无法正常工作,请像这样使用flex-basis flex: 1 1 50%;

    源:https://bugs.webkit.org/show_bug.cgi?id=136041

    此外,当使用带前缀的属性时,您应该始终将它们放在不带前缀的版本之前。

    .tabs {
      width: 100%;
      display: -webkit-flex;
      display: flex;
      -webkit-flex-wrap: wrap;
      flex-wrap: wrap;
      box-sizing: border-box;
    }
    .tab {
      border: 1px solid #3A3A3A;
      color: #929292;
      box-sizing: border-box;
      -webkit-flex: 1 1 50%;
      flex: 1 1 50%;
      text-align: center;
    }
    <div class="tabs">
      <div class="gwt-HTML tab">1</div>
      <div class="gwt-HTML tab">2</div>
      <div class="gwt-HTML tab">3</div>
      <div class="gwt-HTML tab">4</div>
      <div class="gwt-HTML tab">5</div>
    </div>

    【讨论】:

    • 谢谢。我也将该模式应用于其他 flex 布局并且它有效,我只是不知道 min-width 在 IOS 中破坏了 flex。
    • 我正在尝试,但它不起作用 =( 它将所有 3 列放在一起,而不是底部的最后一列 =( iphone 5s 8.3 here
    • @Cheshire 在回答min-width 问题时,您似乎在谈论 height 问题。请发布您自己的问题,并使用导致您的问题的最小工作代码 sn-p,我们会尽力帮助您。如果您愿意,可以在此处通过链接通知我。
    • @LGSon 不不,这与高度无关,我正在尝试与 OP 做同样的事情,最后一项应该与两者的宽度相同,但似乎与 iOS 8.3 和 iphone 5s不工作。
    • @Cheshire 我需要查看代码 sn-p 才能说些什么。
    猜你喜欢
    • 2019-04-05
    • 1970-01-01
    • 2018-08-05
    • 2016-05-13
    • 2016-12-23
    • 2013-03-14
    • 2015-07-07
    • 2014-10-06
    • 1970-01-01
    相关资源
    最近更新 更多