似乎如果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就是其中之一.
好吧好吧,我知道。这个问题已经问了很多。但是,到目前为止,我还没有找到可行的解决方案。我将页面简化为:
<div class="row">
<div class="col-sm-12">
stuff
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
并且仍然有一个水平滚动条。在开发工具中,我可以找到row:
.row {
margin-right: -15px;
margin-left: -15px;
}
Run Code Online (Sandbox Code Playgroud)
如果我不单击鼠标margin-right: -15px;,问题就会消失。但是,在我的实际页面(包含所有内容)上,这又带来了另一个问题。该页面的页边距必须为零,但现在右边距为15px。
答案之一在这里伤心包装row用container-fluid。另一个说要把它包起来container。这些都使滚动条消失了,但是它们还给出了页边距,这是我所没有的。
我发现早在2013年就有讨论此问题的线程。这真的还没有解决吗?
我需要做什么?
另外:小提琴