うわー、IEはいつもどんなに苦痛なようです。受け入れられた答えがありますが、それは私の問題を解決しなかったことがわかりました。
多くの検索の結果、それを修正する方法は、問題の画像から高さと幅の属性を削除することであることがわかりました。説明はここにあります:CSSmax-widthを使用したIE8での画像のスケーリング
コードは次のとおりです。
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をターゲットにし、作業を楽にしました。また、ソリューションはほぼ機能しましたが、完全には機能しなかったことがわかりました。探していた結果が得られるまで、それをいじってみました。私の解決策は次のとおりです。
JQUERY:
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
});
}
});
}
これを使用して特定の画像読み込み機能をターゲットにしますが、ドキュメントレディまたはウィンドウ読み込み機能にも追加できます。