html – Internet Explorer – Flexbox Image Ratio

前端之家收集整理的这篇文章主要介绍了html – Internet Explorer – Flexbox Image Ratio前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
以下小提琴在Chrome / Firefox中正确显示图像比例.

然而,在Internet Explorer中,当调整大小以适应其容器时,图像(应为正方形)将保持其在FlexBox布局中的原始高度.

http://jsfiddle.net/minlare/knyagjk5/

<section>
<article>
    <div class="details">
        <img src="http://i.ytimg.com/vi/rb8Y38eilRM/maxresdefault.jpg" alt="face"/>
        <h4>Name</h4>
        <div class="description">
            <p>Lorem ipsum dolor sit amet,consectetur adipiscing elit. Donec a ultrices lectus. Curabitur molestie volutpat mattis.</p>
        </div>
    </div>
</article>
<article>
    <div class="details">
        <img src="http://i.ytimg.com/vi/rb8Y38eilRM/maxresdefault.jpg" alt="face"/>
        <h4>Name</h4>
        <div class="description">
            <p>Lorem ipsum dolor sit amet,consectetur adipiscing elit. Donec a ultrices lectus. Curabitur molestie volutpat mattis. Fusce fermentum auctor mauris,auctor lacinia mauris ornare faucibus.</p>
        </div>
    </div>
</article>
</section>

section{
    display: -webkit-Box;
    display: -webkit-flex;
    display: -moz-Box;
    display: -ms-flexBox;
    display: flex;

    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}
article{
    display: -webkit-Box;
    display: -webkit-flex;
    display: -moz-Box;
    display: -ms-flexBox;
    display: flex;

    -webkit-Box-flex: 1;
    -webkit-flex-grow: 1;
    -moz-flex-grow: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;

    -webkit-Box-align: stretch;
    -ms-flex-align: stretch;
    -webkit-align-items: stretch;
    -moz-align-items: stretch;
    align-items: stretch;

    width: 50%;
    padding-left: 10px;
    padding-right: 10px;
    margin-bottom: 20px;
    Box-sizing: border-Box;
}
.details{
    display: -webkit-Box;
    display: -webkit-flex;
    display: -moz-Box;
    display: -ms-flexBox;
    display: flex;

    -webkit-Box-direction: normal;
    -webkit-Box-orient: vertical;
    -webkit-flex-direction: column;
    -moz-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;

    width: 100%;
    border: 1px solid #666;
}
.image{
    width: 100%;
    max-width: 100%;
}
img{
    width: 100%;
    max-width: 100%;
    height: auto;
}
h4{
    padding: 10px;
    margin-bottom: 0;
}
.description{
    -webkit-Box-flex: 1;
    -webkit-flex-grow: 1;
    -moz-flex-grow: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
}

如何防止/修复?

解决方法

其原因是 known documented bug,其中IE10和IE11并不总是保留内在比率.而且,根据@ gaynorvader的评论,它在IE10中的工作原理是,IE10中“flex”的默认值为0 0,而最终的规格为0 1 auto.这意味着在IE10中,您的图像被视为flex-grow:0,如 flexbug 6所述

这里的修复是将您的图像设置为flex:none;按照:http://jsfiddle.net/hexalys/knyagjk5/12/,或在其周围添加一个附加容器.但是如果您不需要,我建议不要将图像弹出项目.在这种情况下,您的文章容器已经是一个flex-item,所以我不认为你需要从.details类中创建另一个嵌套的flex项.这似乎是不必要的

猜你在找的HTML相关文章