webentwicklung-frage-antwort-db.com.de

IE 11: Das Bild wird in der Flexbox nicht korrekt verkleinert

Ich versuche Flexbox zu verwenden, um zwei Bilder in einer Spalte zu platzieren. In diesem Fall ist die width des div-Containers kleiner als die width des Bildes. In Chrome passt das Bild perfekt in den div-Container, aber nicht in IE, und ich weiß nicht warum.

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/

Das habe ich in IE 11:

13
yifei3212

IE11 scheint Probleme mit dem Anfangswert der Eigenschaft flex-shrink zu haben. Wenn Sie es auf Null setzen (es ist anfänglich auf 1 gesetzt), sollte es funktionieren:

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;
}
<div class="outer">
  <div class="inner">
    <img src="http://placehold.it/480x360">
  </div>

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

27
andreas

Die akzeptierte Lösung hat meine klebrigen Fußzeilen zerstört. Also löste ich dieses störende Problem mit folgendem nicht befriedigendem "nur für zB JS" .... Der px-Wert statt der "height: auto" hat den Trick für mich gemacht.

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