Internet Explorer 11 弹性盒子布局问题

6

我编写的代码在我测试过的所有浏览器中都能正常运行,除了IE 11。问题似乎出在这里:

#wrapper {
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: -o-flex;
    display: flex;
    -webkit-flex-direction: row;
    -moz-flex-direction: row;
    -ms-flex-direction: row;
    -o-flex-direction: row;
    flex-direction: row;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    width: 100%;
    height: 100%;
    position: relative;
    top: 1em;
}

如果我删除flex属性,它会变得更易管理,但是使用它们时,它会将所有内容缩小到这个长而窄的div中,一直延伸下去。

如果我在IE 10中测试,是否有帮助?


请发布一个最小化的工作代码片段以重现问题,否则我们将无法提供帮助。 - Asons
@Michael_B 如果您发布相关的HTML并在标记我的时候,请放心,我会尽力帮助您解决问题。 - chris cozzens
1
flex 不需要使用浏览器前缀。 - junkfoodjunkie
3个回答

6
你只需要加上 flex:1;,就可以解决IE11的问题。
#wrapper {
display: -webkit-flex;
display: -moz-flex;
display: -ms-flexbox;
display: -o-flex;
display: flex;
-webkit-flex-direction: row;
-moz-flex-direction: row;
-ms-flex-direction: row;
-o-flex-direction: row;
flex-direction: row;
-webkit-flex-wrap: wrap;
flex-wrap: wrap;
width: 100%;
height: 100%;
position: relative;
top: 1em;
flex:1;
}

嗯,不行啊。我也试过用“auto”,但是什么都没改变。 - jaypat32
可能添加一张截图吗? - chris cozzens
Chrome、Firefox和Edge:http://postimg.org/image/rbsn4ft8l/Internet Explorer:http://postimg.org/image/grbt7njdv/两个蓝色方块应该是同一个颜色... - jaypat32
3
如果您在 flex 容器的子元素上设置 flex: 1,那么如果 wrapper 是一个“包装器”,这将不会改变任何东西……因为我们看不到标记,所以我不明白您如何可能知道这将解决问题。 - Asons

2

只需将宽度设置为100%即可解决我的问题。


1

尝试使用display: run-indisplay: inline-block代替display: -ms-flexbox


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接