当前位置:  开发笔记 > 前端 > 正文

Flexbox包装Safari中第一行的最后一列

如何解决《Flexbox包装Safari中第一行的最后一列》经验,为你挑选了4个好方法。

在Safari和其他一些基于iOS的浏览器中查看时,第一行的最后一列被包装到下一行.

苹果浏览器:

在此输入图像描述

Chrome /其他:

在此输入图像描述

码:

.flexthis {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}

.flexthis .col-md-4 {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}

Name

Description



1> Taylan..:

说明

发生这种情况是因为Safari将伪元素之前和之后视为真实元素.例如,考虑一个有7个项目的容器.如果容器具有:before和:之后Safari会定位这样的项目:

[:before ] [1st-item] [2nd-item]

[3rd-item] [4th-item] [5th-item]

[6th-item] [7th-item] [:after  ]

作为已接受答案的替代方法,我删除:在&之后,从flex容器中删除而不是改变HTML.在你的情况下:

.flexthis.container:before,
.flexthis.container:after,
.flexthis.row:before,
.flexthis.row:after {
   content: normal; // IE doesn't support `initial`
}


我可以确认重置`before`和`after`修复Safari中的问题
这应该是答案.结构没有变化,只有css编辑来纠正OP的问题.
5/17这个答案仍然有效:)谢谢男人!
祝福你和你所有的孩子

2> DominikN...:

只是为了更新我的问题

这是我使用的解决方案,对于与Flexbox兼容的Bootstrap4来说,这显然是固定的.所以这只适用于bootstrap3.

.row.flexthis:after, .row.flexthis:before{
  display: none;
}



3> 小智..:

我知道这个问题已经很老了,但我今天遇到了这个问题,浪费了12个多小时来修复它.尽管大约花了10个小时才意识到safari正在以12列自举网格失败,但这不是其他问题.

修复我做的很简单.这是Visual Composer的版本.其他框架的类名可能有所不同.

.vc_row-flex:before, .vc_row-flex:after{
  width: 0;
}



4> 小智..:

我不想添加更多的类来修复此类错误,因此,您也可以修复.row类本身。

.row {
    &:before {
        content: none;
    }

    &:after {
        content: '';
    }
} 

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有