1

「コンテンツ」幅を取得するために以下のようなコードがありますが、IE 7、8、9 で異なる値が返されるのはなぜですか? 値は Firefox でも異なります。

一貫した値を返すようにするにはどうすればよいですか? JQueryを使わなくても可能ですか?

document.getElementById('content').clientWidth
document.getElementById('leftSide').offsetWidth
document.getElementById('content').clientHeight

左側の div はコンテンツ div の中に含まれています。彼らが持っている唯一のスタイルは

background-color:white;

私は得た:

IE7 1604/297/925

IE8 1906/297/925

IE9 1910/297/1609。

FF1610/297/1910

「規格準拠モード」をオンにしてみましたが、それでも違いはありませんでした...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

ありがとう、

4

1 に答える 1

2

違いは、ブラウザ ボックス モデルに関係しています。quirks モードかどうかによって大きく異なります ( http://en.wikipedia.org/wiki/Internet_Explorer_box_model_bug )。これらの問題を軽減する最も効果的な方法は、ブラウザ間の違いを正規化するメソッドを持つ JavaScript ライブラリ (jQuery など.width() .height()) を使用することです。

于 2012-08-08T07:04:22.773 に答える