哇,IE 似乎总是那么痛苦。虽然有一个公认的答案,但我发现它并没有解决我的问题。
经过大量搜索,我发现修复它的方法是从相关图像中删除高度和宽度属性。可以在这里找到解释:Scaling Images in IE8 with CSS max-width
代码如下:
CSS:
.entry img {
max-width:615px
height:auto;
}
脚本
var imgs, i, w;
var imgs = document.getElementsByTagName( 'img' );
for( i = 0; i < imgs.length; i++ ) {
w = imgs[i].getAttribute( 'width' );
if ( 615 < w ) {
imgs[i].removeAttribute( 'width' );
imgs[i].removeAttribute( 'height' );
}
}
现在我倾向于尽可能多地使用 jQuery,为了解决这个问题,我使用了一些不同的函数来定位 IE8,让我的生活更轻松。我还发现该解决方案几乎奏效了,但并不完全奏效。我玩弄了它,直到我能够达到我想要的结果。我的解决方案如下:
查询:
var maxWidth = 500;
function badBrowser(){
if($.browser.msie && parseInt($.browser.version) <= 8){
return true;
}
return false;
}
if(badBrowser()){
$('img').each(function(){
var height = $(this).height();
var width = $(this).width();
if (width > maxWidth) {
var ratio = (maxWidth /width)
$(this).css({
"width":maxWidth,
"height":(ratio*height)
});
$(this).removeAttr('width');
$(this).removeAttr('height');
}else{
$("#cropimage").css({
"width":width,
"height":height
});
}
});
}
我使用它来定位特定的图像加载功能,但它也可以添加到任何文档就绪或窗口加载功能。