在 Internet Explorer 中包含 100% 宽度图像的 flex 子框的高度不正确
Posted
技术标签:
【中文标题】在 Internet Explorer 中包含 100% 宽度图像的 flex 子框的高度不正确【英文标题】:Not correct height of flex child box which contains 100% width image in Internet Explorer 【发布时间】:2017-07-05 17:46:01 【问题描述】:我使用Chris' Coyer approach 使页脚粘在页面底部。
<div class="container">
<div class="content-box">
<div class="image-box">
<img src="https://i.stack.imgur.com/XIQ2T.jpg">
</div>
</div>
<div class="bottom-box">Bottom</div>
</div>
CSS:
.container
display: flex;
flex-direction: column;
height: 100vh; /* Avoid the IE 10-11 `min-height` bug. */
.bottom-box
flex-shrink: 0; /* Prevent Chrome, Opera, and Safari from letting these items shrink to smaller than their content's default minimum size. */
background: #069;
color: #fff;
line-height: 3;
.content-box
flex: 1 0 auto; /* Prevent Chrome, Opera, and Safari from letting these items shrink to smaller than their content's default minimum size. */
.image-box img
max-width: 100%;
效果很好。直到我在 Internet Explorer 11 中遇到了这个问题。如果我将一个大图像放入内框并使用 max-width: 100%
调整它的大小,那么父框在调整大小之前会采用原始图像的高度。
实际: 父框在调整大小之前采用原始图像的高度。它在 IE11 中也是如此。
预期:
父框在调整大小后获取图像的高度。它适用于 Chrome、Firefox、Safari。
JSFIDDLE: 为了更好地理解问题,您可以在此处查看代码和示例:https://jsfiddle.net/v9ocv7b6/31/
有人知道如何解决这个问题吗?
【问题讨论】:
这是你需要的吗:codepen.io/themeler/pen/vgMjow ? @PrzemysławMelnarowicz 不幸的是没有:( 【参考方案1】:你试过为 IE 使用前缀 -ms- 吗?
http://caniuse.com/#search=flexbox
【讨论】:
IE11 是否需要供应商前缀才能支持 flexbox?不,它没有:) 但是 IE11 似乎有很多关于 flex 的错误:caniuse.com/#feat=flexbox ***.com/questions/37905749/… @fauxserious 是的,不幸的是它有很多错误,但这是一种新的。使用供应商前缀我得到了相同的结果。 @grinmax 我知道 IE 中的“最小高度问题”,这就是为什么使用height
属性...以上是关于在 Internet Explorer 中包含 100% 宽度图像的 flex 子框的高度不正确的主要内容,如果未能解决你的问题,请参考以下文章
在同一台计算机上运行 Internet Explorer 6、Internet Explorer 7 和 Internet Explorer 8
为啥即使在模拟 Internet Explorer 8 文档模式时,Internet Explorer 11 也不支持条件注释?
如何在 Cordova / Phonegap 的远程 html 文件中包含本地脚本?
对于某些情况,如 Internet Explorer 特定的 CSS 或 Internet Explorer 特定的 JavaScript 代码,如何仅针对 Internet Explorer 10?
为啥在安装Windows Internet Explorer 7的时候,提示"此操作系统不支持Windows Internet Explorer 7.