相关疑难解决方法(0)

IE11中的multiline-flexbox计算宽度不正确?

似乎如果flex-wrap: wrap使用IE11,则IE11不会正确计算弹性项目宽度.

http://jsfiddle.net/MartijnR/WRn9r/6/

每个4个盒子都有弹性基础:50%所以我们应该得到两行两个盒子,但在IE11中每个盒子得到一行.将边框设置为0时,它可以正常工作.

不知道这是一个错误,还是有办法使IE11表现(并仍然使用边框)?

<section>
    <div class="box">1</div>
    <div class="box">2</div>
    <div class="box">3</div>
    <div class="box">4</div>
</section>
Run Code Online (Sandbox Code Playgroud)
section {
    display: -moz-flex;
    display: -webkit-flex;
    display: flex;
    -moz-flex-direction: row;
    -webkit-flex-direction: row;
    flex-direction: row;
    -moz-flex-wrap: wrap;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    width: 100%;
    box-sizing:border-box;
    margin:0;
}
.box {
    border: 1px solid black;
    background: #ccc;
    display: block;
    -ms-flex: 50%;
    -moz-flex: 50%;
    -webkit-flex: 50%;
    flex: 50%;
    box-sizing: border-box;
    margin:0;
}
Run Code Online (Sandbox Code Playgroud)

PS在我的项目中,谢天谢地,只需要支持最新版本的流行浏览器,但IE11就是其中之一.

css css3 flexbox internet-explorer-11

32
推荐指数
4
解决办法
2万
查看次数

IE10 flexbox宽度包括填充,导致溢出.box-sizing:border-box无法修复

此示例中的LHS flex子级具有1em填充,并且它将导致RHS溢出父级:

<div style="display: -ms-flexbox; box-sizing: border-box; width: 200px; border: 5px solid black">

    <div style="padding: 1em; -ms-flex-positive: 0; -ms-flex-negative: 0; -ms-flex-preferred-size: 33%; background-color: blue; box-sizing: border-box">
        LHS
    </div>

    <div style="-ms-flex-positive: 0; -ms-flex-negative: 0; -ms-flex-preferred-size: 67%; background-color: red; box-sizing: border-box">
        RHS
    </div>

</div>
Run Code Online (Sandbox Code Playgroud)

这是小提琴:

http://jsfiddle.net/GY4F4/6/

当柔性儿童有填充物时,如何消除溢出?box-sizing: border-box不起作用.

css css3 flexbox internet-explorer-10 internet-explorer-11

30
推荐指数
4
解决办法
1万
查看次数

如何在填充和边框中使用flex-shrink因子?

假设我们有一个宽度为400px的弹性容器.

在这个容器里面有三个flex项:

:nth-child(1) { flex: 0 2 300px; }   /* flex-grow, flex-shrink, flex-basis */
:nth-child(2) { flex: 0 1 200px; }
:nth-child(3) { flex: 0 2 100px; }
Run Code Online (Sandbox Code Playgroud)

因此,flex项的总宽度为600px,容器中的可用空间为-200px.

这个问题,本文flexbox规范的帮助下,我学会了在flex项目中分配负空闲空间的基本公式:

步骤1

将每个收缩值乘以其基础并将它们全部加在一起:

:nth-child(1)  2 * 300 = 600
:nth-child(2)  1 * 200 = 200
:nth-child(3)  2 * 100 = 200
Run Code Online (Sandbox Code Playgroud)

总计= 1000

第2步

将上面的每个项目除以总数来确定收缩因子:

:nth-child(1)  600 / 1000 = .6
:nth-child(2)  200 / 1000 = .2
:nth-child(3)  200 / 1000 = .2 …
Run Code Online (Sandbox Code Playgroud)

css css3 flexbox

28
推荐指数
2
解决办法
4073
查看次数