IE 11: изображение не масштабируется правильно в пределах flexbox
Я пытаюсь использовать flexbox, чтобы разместить два изображения в столбце. В этом случае width
контейнера div меньше 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>
Ответы
Ответ 1
IE11, похоже, имеет некоторые проблемы с начальным значением свойства flex-shrink
. Если вы установите его на ноль (он первоначально установлен в 1), он должен работать:
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>
Ответ 2
Принятое решение уничтожило мои липкие колонтитулы в т.е. Так что я решил эту тревожную проблему с помощью следующего неудовлетворительного "только для ie JS".... Значение px вместо "height: auto" помогло мне.
if(fuBrowser =='ie'){
var img = $("#teaser img");
img.each(function() {
$( this ).css({height: $( this ).height()});
});
}
Ответ 3
Только что добавил flex: 1;
чтобы ребенок работал на меня.