我正在处理两列布局。两列都将显示一个iframe,两者的宽度将被定义为内联风格/在CMS中设置。如果iframe小于列,它应该垂直居中。如果它大于色谱柱,它应该缩小到色谱柱的最大宽度,这个宽度接近50%。嵌套柔性盒:IE11不尊重最大宽度:100%
(是的,这也许可以不使用Flexbox的两次这样做,但我没有兴趣在这样的答案,因为我简化的例子和使用情况。)
HTML:
<div class="content">
<div class="col">
<div class="media-wrapper">
<iframe src="http://www.jsbin.com/blog" frameborder="0" scrolling="no" style="width: 2000px; height: 2000px"></iframe>
</div>
</div>
<div class="col">
<div class="media-wrapper">
<iframe src="http://www.jsbin.com/blog" frameborder="0" scrolling="no" style="width:200px"></iframe>
</div>
</div>
</div>
SCSS:
.content {
display: flex;
justify-content: center;
flex-flow: row wrap;
}
.col {
display: flex;
justify-content: center;
align-items: flex-start;
flex: 1;
height: 100%;
min-width: 0; // this fixes the issue in FF 34
+ .col {
margin-left: 40px;
}
}
.media-wrapper {
box-sizing: border-box;
max-width: 100%;
padding: 15px;
background: lightblue;
}
iframe {
display: block;
margin: 0 auto;
max-width: 100%;
overflow: hidden;
}
这可以在Chrome 39中按预期工作。在Firefox 33和IE 10中,它也可以工作。 (我很懒,所以我没有在小提琴中添加IE10-flexbox语法。) 在新的FF34中,它的行为与IE11中的相同,但是这可以通过max-width: 100%
修复。进一步的解释请参阅How can I get FF 33.x Flexbox behavior in FF 34.x?。
不幸的是,此修复不会影响IE11。那么如何防止IE11显示iframe大于列?为什么会这样呢?这是一个错误还是这是另一个flexbox-功能,如链接问题中提到的那样重新引入?
http://stackoverflow.com/q/42493626/3597276 – 2017-02-27 23:49:06