html - 如何在 Safari 上使用 Flexbox 正确对齐列?

标签 html css safari flexbox

我们有一组使用宽度和 Flexbox 定义的列.使用固定宽度的原因是为了绕过关于 flex-basis and how IE 10-11 ignore calc() 的 IE Bug。 .由于我们使用的是 Flexbox,因此我们不想使用其他框架(如 Bootstrap)的 float: left 属性。可以用。

除了 Safari 9、10.1 和 11 之外,所有浏览器都运行良好。

我们如何解决对齐问题,以便我们让 Safari 的所有内容都排成两行四列?

.container {
  max-width: 1440px;
  padding: 0 16px;
  margin: 0 auto;
}

.container:before, .container:after {
  content: '';
  display: table;
 }

.container:after {
  clear: both;
}

.flex__row {
  display: flex;
  justify-content: center;
  align-items: stretch;
  flex-direction: row;
  flex: 0 1 auto;
}

.flex__row--wrap{
  flex-wrap: wrap;
}

.flex__col {
  display: flex;
  justify-content: center;
  align-items: stretch;
}

@media screen and (min-width: 320px) {
  .col--m-s-12 {
    width: 100%;
  }
}

@media screen and (min-width: 768px) {
  .col--t-s-6 {
    width: 50%;
  }
}

@media screen and (min-width: 1024px) {
  .col--t-3 {
    width: 25%;
  }
}

[class*=col--] {
  box-sizing: border-box;
  padding: 2rem;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<div class="container">
  <div class="flex__row flex__row--wrap">
    <div class="col--m-s-12 col--t-s-6 col--t-3 flex__col ns-flex__col--padding-sml">
      <i class="fa fa-cube fa-4x" aria-hidden="true"></i>
    </div>
    <div class="col--m-s-12 col--t-s-6 col--t-3 flex__col ns-flex__col--padding-sml">
      <i class="fa fa-lock fa-4x" aria-hidden="true"></i>
    </div>
    <div class="col--m-s-12 col--t-s-6 col--t-3 flex__col ns-flex__col--padding-sml">
      <i class="fa fa-bath fa-4x" aria-hidden="true"></i>
    </div>
    <div class="col--m-s-12 col--t-s-6 col--t-3 flex__col ns-flex__col--padding-sml">
      <i class="fa fa-adjust fa-4x" aria-hidden="true"></i>
    </div>
    <div class="col--m-s-12 col--t-s-6 col--t-3 flex__col ns-flex__col--padding-sml">
      <i class="fa fa-bars fa-4x" aria-hidden="true"></i>
    </div>
    <div class="col--m-s-12 col--t-s-6 col--t-3 flex__col ns-flex__col--padding-sml">
      <i class="fa fa-arrows fa-4x" aria-hidden="true"></i>
    </div>
    <div class="col--m-s-12 col--t-s-6 col--t-3 flex__col ns-flex__col--padding-sml">
      <i class="fa fa-bus fa-4x" aria-hidden="true"></i>
    </div>
    <div class="col--m-s-12 col--t-s-6 col--t-3 flex__col ns-flex__col--padding-sml">
      <i class="fa fa-archive fa-4x" aria-hidden="true"></i>
    </div>
  </div>
</div>

断点处的当前结果 > 1024px current safari issue

断点处的预期结果 > 1024px: chrome/firefox/IE/Edge

最佳答案

当我删除下面的 css 时,我能够解决问题。

.container:before, .container:after {
  content: '';
  display: table;
 }

.container:after {
  clear: both;
}

关于html - 如何在 Safari 上使用 Flexbox 正确对齐列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49391931/

相关文章:

html - 当您滚动时,在 iOS chrome 上固定位置的顶部标题栏会移动

javascript - 如何修复我的元素中未加载图像和 CSS?

ios - 在 iOS 的移动 Safari 中播放时,流媒体音频失真

firefox - 在 Safari 和 Firefox 中的 React 中重新渲染时插入符号位置恢复到 contenteditable 跨度的开始

javascript - Windows 8 Metro 应用程序是否提供所有 JavaScript 功能?

php - is_int、is_numeric、is_float 和 HTML 表单验证

c# - 循环插入问题,重新加载页面加载?

javascript - 我怎样才能让一个按钮做相反的多项事情

javascript - 将线性渐变与动态背景图像相结合

javascript - window.onload 在字体加载之前触发