IE 11:图像在flexbox中无法正确缩小

时间:2017-02-11 06:56:04

标签: html css css3 flexbox internet-explorer-11

我正在尝试使用flexbox将两个图像放在一列中。在这种情况下,div容器的width小于图像的width。在Chrome中,图像完全适合div容器,但它不在IE中,我不知道为什么。

div.outer {
  width: 400px;
  display: flex;
  flex-direction: column;
  justify-content: space-around;
}

div.inner {
  width: 100%;
  border: 1px solid red;
}

img {
  width: 100%;
  height: auto;
}
<div class="outer">
  <div class="inner">
    <img src="http://placehold.it/480x360">
  </div>

  <div class="inner">
    <img src="http://placehold.it/480x360">
  </div>
</div>

https://jsfiddle.net/Yifei/16cpckqk/

这就是我在IE 11中所拥有的:

2 个答案:

答案 0 :(得分:31)

IE11似乎对flex-shrink property的初始值有些麻烦。如果将其设置为零(最初设置为1),它应该可以工作:

&#13;
&#13;
div.outer {
  width: 400px;
  display: flex;
  flex-direction: column;
  justify-content: space-around;
}
div.inner {
  flex-shrink: 0;
  width: 100%;
  border: 1px solid red;
}
img {
  width: 100%;
  height: auto;
}
&#13;
<div class="outer">
  <div class="inner">
    <img src="http://placehold.it/480x360">
  </div>

  <div class="inner">
    <img src="http://placehold.it/480x360">
  </div>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

公认的解决方案破坏了我的粘性页脚。因此,我通过以下不令人满意的“仅适用于JS”解决了这一令人不安的问题。 px值代替了“ height:auto”对我有用。

 if(fuBrowser =='ie'){
  var img = $("#teaser img");
    img.each(function() {
    $( this ).css({height: $( this ).height()});
    });
  }