高度:在 Internet Explorer 8 及更低版本中自动

Posted

技术标签:

【中文标题】高度:在 Internet Explorer 8 及更低版本中自动【英文标题】:Height: Auto in Internet Explorer 8 and below 【发布时间】:2012-01-26 11:03:21 【问题描述】:

转向响应式设计,我将 %s 用于图像,例如:

#example img 
    width: 100%;
    height: auto;
    max-width: 690px; // Width of the image uploaded.

这很好用,但在 Internet Explorer 8 及更低版本中除外。这是因为height: auto 是 CSS3 的一部分,而 CSS3 仅受 IE9 及更高版本支持?

最重要的部分...关于解决这个问题的方法有什么建议吗?到目前为止我唯一能想到的就是给它一个最大高度。

谢谢

【问题讨论】:

【参考方案1】:

试试这个:

img 
  width: inherit;  /* Make images fill their parent's space. Solves IE8. */
  max-width: 100%; /* Add !important if needed. */
  height: auto;    /* Add !important if needed. */

或者:

img  max-width:100%; height: auto;  /* Enough everywhere except IE8. */
@media \0screen img  width: auto  /* Prevent height distortion in IE8. */

两种解决方案都有效。不同之处在于width:inherit 使图像填充其父空间,而width:auto 将它们最大化为实际尺寸。请参阅fit.css

【讨论】:

唯一对我有用的是:@media \0screen img width: auto /* Prevent height distortion in IE8. */ 这解决的不仅仅是 IE 8。为我修复了 IE 11 中的一个问题。真是一团糟。 这在 IE11 中也为我解决了这个问题。起初添加“宽度:继承”并没有解决它。感谢 ryanve 的解释(太有帮助了!!!)我意识到我需要修改图像的容器,所以我也给了它“宽度:100%”。我在顶部有一个图像,并希望在其顶部有文本,所以这是我最终得到的代码: .containerBox position: relative;显示:内联块;宽度:100%; 然后对于图像: .img display: block;最大宽度:100%;高度:自动;边距:自动;填充:自动;宽度:继承;

以上是关于高度:在 Internet Explorer 8 及更低版本中自动的主要内容,如果未能解决你的问题,请参考以下文章

在 Internet Explorer 中包含 100% 宽度图像的 flex 子框的高度不正确

在同一台计算机上运行 Internet Explorer 6、Internet Explorer 7 和 Internet Explorer 8

Internet Explorer 不尊重我的最小高度:100% 使用 flexbox

Internet Explorer 自动为新添加的图像添加高度和宽度属性

为啥即使在模拟 Internet Explorer 8 文档模式时,Internet Explorer 11 也不支持条件注释?

Internet Explorer 不会使用 flex-direction: column 展开 flexbox