IE CSS bug:IMG原始高度影响父高度

Posted

技术标签:

【中文标题】IE CSS bug:IMG原始高度影响父高度【英文标题】:IE CSS bug: IMG original height affecting parent height 【发布时间】:2016-01-25 21:07:08 【问题描述】:

我有一个 PARENT flexbox div(它也是列 flexbox 的一部分):

div.flex_block 
        width:100%;
        flex: 1 1 auto;
        display:flex;
        flex-direction:row;
        align-items:center;
        justify-content:space-between;  
        padding-bottom:30px; 

它包含 2 个孩子:

.flex_block  .content
    max-width:none; /* override other code */
    flex: 0 1 50%;


.flex_block  .image
    max-width:none; /* override other code */
    flex: 0 1 35%;

第一个孩子有一些文字。 第二个有一个超大的图像,设置为 100% 宽度,所以它缩小到它的容器。

.flex_block  .image img
    display:block;
    width:100%;
    height: auto;

它在 Chrome 中按预期工作,但在 IE 中,原始 img 的高度似乎扩展了 PARENT 容器(即使它确实缩小以适合其容器)。 如果我设置 img 高度,问题就解决了。 AUTO 没有修复它。 显然,我需要将其作为响应式设计,因此我不希望以像素为单位设置高度。

以下是所发生情况的可视化:

我也尝试过使用具有百分比宽度的内联元素而不是弹性框,但问题仍然存在。

【问题讨论】:

你有没有想过解决这个问题?我现在有类似的问题让我发疯。 MS好像已经用IE12和IE13解决了,但是11是个问题。 【参考方案1】:

添加到容器的可能解决方案:

flex-shrink: 0;

或者更具体到 IE11:

-ms-flex-negative: 0;

这似乎解决了我的问题,但您的结果可能会有所不同。

我不会假装理解为什么它有效,但它似乎对我有效。 :)

【讨论】:

以上是关于IE CSS bug:IMG原始高度影响父高度的主要内容,如果未能解决你的问题,请参考以下文章

IE6图片元素img下高度超出出现多余空白

img标签无图片时,不同浏览器高度计算问题

css回顾2

CSS父元素没有设置高度,元素浮动后父元素无法跟随子元素的高度-_-

IE6的bug

在css中 父元素不固定高度,怎样实现子元素的高度100