同様の質問に対する回答を次に
示します。JavaScript では、document キーワードは、HTMLDocument を含むオブジェクトのハンドルです。
したがって、それらは同じではなく、 document は object であり、ページの html も含まれています。
これで、html とドキュメントから幅を取得できます。
console.log($("html").width());
html の幅を指定します。
そしてconsole.log($(document).width());
ドキュメントの可視部分の幅を与えるので、明らかにそれ自体の幅です<html>
が、違いがあります. にマージンを適用した場合html
、ドキュメントの幅はsum of width of html and the margin applied to it
.
この例を参照してくださいhttp://jsfiddle.net/bbke9n59/
<div style='background:red;height:30px;'></div>
html{
margin:20px;
}
ここで、私のブラウザでは、
console.log('html='+$("html").width()); // width 630
console.log('document='+$(document).width());// width 670
ちょうど、幅の 40 ピクセルの違い、それはに適用されるマージンのみです。html
これはクロムとファイアフォックスに関するものでした
IEについて
IE-9
で同じページを実行すると IE-9
console.log('html='+$("html").width()); // width 570
console.log('document='+$(document).width());// width 570
html と document の幅に違いはありません(本当はあったはずです)
IE-11
で同じページを実行するとIE-11
console.log('html='+$("html").width()); // width 517
console.log('document='+$(document).width());// width 557
クロムとファイアフォックスが示したように、40の正確な違い。
そのため、(どのブラウザーでも) 丸めの問題を再現できなくなったので、私にとっては、問題は jquery を使用した切り上げにはないと思います (それが問題である場合、jquery は幅を切り上げたでしょう)と両方の場合、それでも同じ幅にしdocument
ますhtml
)