flexbox在Safari中添加1px左边距

时间:2015-12-07 23:43:48

标签: css safari flexbox

我遇到了Safari在flexbox行的第一个元素左边添加1px边距/间隙的问题。我在下面附上了一张图片:

enter image description here

弹性框css是:

.equal-height {
        display: -webkit-box;      /* OLD - iOS 6-, Safari 3.1-6 */
        display: -moz-box;         /* OLD - Firefox 19- (buggy but mostly works) */
        display: -ms-flexbox;      /* TWEENER - IE 10 */
        display: -webkit-flex;     /* NEW - Chrome */
        display: flex;             /* NEW, Spec - Opera 12.1, Firefox 20+ */
        -webkit-flex-direction: row;
        -webkit-flex-wrap: wrap;
        flex-direction: row;
        flex-wrap: wrap;
    }

子元素设置如下:

.child-div {
    float: left;
    display: block;
    width: 33.3333%;
    box-sizing: border-box;
}

但他们我注意到他们的计算没有浮动

3 个答案:

答案 0 :(得分:5)

file:style.css; 行:1028

.row:before, .row:after{
  content: " ";
  display: table;
}

添加:

width: 100%

现在“保证金”已经解决了。

您使用的网格系统存在safari问题:更改它。

希望我帮助过你。

答案 1 :(得分:4)

我也注意到了这一点。这对我有用:

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

答案 2 :(得分:3)

它们在没有浮动的情况下计算的原因是flex取消了它们。 根据{{​​3}}:

  

float和clear对flex项没有影响,不要接受它   乱流。但是,float属性仍然可以影响框   通过影响显示属性的计算值来生成。

因此根据Michael的说法,灵活容器上100%的宽度是可以的,但是如果你想要flexbox,你想要的是:

.child-div {
        width: 33.3333%;
        box-sizing: border-box;
        -webkit-box-flex: 1;
        -moz-box-flex: 1;
        -webkit-flex: 1 1 auto;
        -ms-flex: 1 1 auto;
        flex: 1 1 auto;
}

即。您需要使用浮点数或弹性值,但不能同时使用两者。

您可能需要查看此flexbox spec以了解flex的工作原理。