首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >flex-box中的行换行在Safari中不换行

flex-box中的行换行在Safari中不换行
EN

Stack Overflow用户
提问于 2014-08-18 17:51:59
回答 6查看 40.7K关注 0票数 38

一个flex容器有四个子容器,每个子容器的flex基数为25%,最小宽度为a。flex-flow设置为行换行。Safari以外的其他浏览器会按照预期进行处理:如果达到了最小宽度,它会将下一项包装到下一行。在Safari中,它使容器溢出。

请在此处查看演示:http://codepen.io/lbilharz/pen/aJbkI

玉石

代码语言:javascript
复制
h1 Why this ain't wrappin' in mobile-safari?
  .flex
    for i in ['one','two','three','four']
      .item
        h2=i

手写笔

代码语言:javascript
复制
.flex
  display flex
  flex-wrap wrap
  flex-direction row
  padding 1em
  background lightyellow
  .item
    flex 1 0 25%
    padding 1em
    box-sizing border-box
    min-width 15em

有什么想法吗?

EN

回答 6

Stack Overflow用户

发布于 2015-06-12 07:00:05

comment on bugs.webkit.org上看,解决方案似乎很简单!

如果你的风格是

代码语言:javascript
复制
div.flex {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-flex-direction: row;
    flex-direction: row;
}
div.flex .item {
    min-width: 15em;
    -webkit-flex: 1;
    flex: 1;
}

你只需要给你的flex声明增加更多的明确性。事实上,我认为只有一行需要像这样更改

代码语言:javascript
复制
div.flex {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-flex-direction: row;
    flex-direction: row;
}
div.flex .item {
    min-width: 15em;
    -webkit-flex: 1 1 15em; /* this */
    flex: 1;
} 
票数 54
EN

Stack Overflow用户

发布于 2016-01-28 05:44:50

我在我的flex项上使用了max-width,所以我能够通过在flex属性中显式设置max-width来解决这个问题:

代码语言:javascript
复制
.wrapper {
  display: flex;
  flex-flow: row wrap;
}
li {
  width: 100%;
  max-width: 500px;
  flex: 1 1 500px;
}
票数 6
EN

Stack Overflow用户

发布于 2017-08-30 14:16:15

这是一个Safari IOS错误。因此,修复/解决方法是将flex-basis设置为显式宽度,而不是子元素的auto。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25360526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档