<img/>标记上的最大宽度在IE8中不起作用

时间:2010-10-12 13:31:19

标签: internet-explorer-8 css

我有一个奇怪的问题。在当前正在构建的网站上,我们通过jQuery插件Gallerific拥有一个库功能。画廊在模态窗口中打开。我需要的是将图像的最大宽度设置为765px。因此我设置了最大宽度:765px;在我的CSS中。 我知道我不是在IE6工作,但我不在乎。

奇怪的是,当我使用例如1400px宽,兼容性视图中的IE8,Firefox,Chrome,Safari和Opera,都将这个图像缩放到宽度为765px - 但不是IE8! 我无法弄清楚为什么这不起作用。

任何人都知道发生了什么,或者更好,如何修复它?

非常感谢您的回答 - 谢谢!

问候,金

7 个答案:

答案 0 :(得分:22)

IE8要求在图像周围放置一个容器,其宽度要么设置为您要查找的最大宽度,要么设置为100%宽度(似乎在绝对定位的div上效果更好)。只要在容器上定义宽度,IE8似乎就很高兴。

对于您的示例,您可以将容器div设置为您要查找的最大宽度,同时将所有图像的max-width属性设置为100%:

.container { width: 765px;}
img { max-width: 100%;}

强制图像不超过发现它们的容器的宽度。

确保声明HTML5 doctype; IE不喜欢XHTML doctypes。

亲切的问候, 拉里

答案 1 :(得分:5)

你已经遇到了IE8的“几乎标准模式”(其设计与IE7一样被破坏)。添加元标记:

<meta http-equiv="X-UA-Compatible" content="IE=8">

或具有相同值的真实HTTP标头字段应使您进入正确的标准模式。请注意,元标记必须出现在任何脚本或样式元素之前才能正常工作。

答案 2 :(得分:0)

我遇到了类似的问题,当你有不同尺寸的图像时,容器解决方案不起作用,如果图像很小,它会在图像的一侧留下很多空间。显然,在IE8中,max-height工作正常,如果可以,我建议使用它。

答案 3 :(得分:0)

如其他响应中所述,您需要在容器中应用宽度以在IE8中解决此问题。对于Galleriffic特定解决方案,您可以添加类似于此的css:

a.thumb img 
{
    max-width: 160px; 
}

/* IE 8 specific bug */
a.thumb
{
    width: 160px; 
}

答案 4 :(得分:0)

嘿,有一件事你可能想尝试(让我把头撞到墙上),所以要确保你的doctype设置正确。

IE8与HTML5版本一起工作,但如果它是小写,它不会。

http://www.kintek.com.au/blog/ie8-max-width-max-height-and-inline-ie8-css-hacks/

你可以做的很酷的CSS内联黑客攻击特定平台:

宽度:200像素\ 9; / * ie8和更早 / 高度:200像素\ 9; / ie8和更早的* /

答案 5 :(得分:0)

我遇到了与IE 8和9类似的东西,发现我的代码中有一个不同的问题值得一提。

我有一个宽度为100%的div,然后是一个最大宽度为980px的div。

由于某种原因,没有看到最大宽度,并且该980 div内部的一个元素应该向右浮动。

我通过w3代码验证器运行了该页面,它在doctype声明之前发现了一条评论,并说IE将在&#34; quirks&#34;模式。

一旦我在doctype声明下面提出了这个推荐,那么验证者的怪癖就会出现问题。模式警告消失了,IE 8和9中的一切正常。

答案 6 :(得分:-1)

也许Gallerific在飞行中应用了最大宽度? 你试过!important吗?