FireFoxの標準モードでは、エレメントのstyle.width,heightに数値での設定が出来ない

// FireFox 1.5の標準モードでは代入できない(互換モードならOK)
// IE 6,Opera 9ではモードかかわらずOK
document.getElementById('hoge').style.height = 1000;
document.getElementById('hoge').style.width  = 1000;

// これはOK
document.getElementById('hoge').style.height = '1000px';
document.getElementById('hoge').style.width  = '1000px';

FireFoxが、標準/互換モードでこんな制限かけているのにビックリしました。
普段から'px'をちゃんと付けていれば、はまることもありませんが、ついつい数値で書いちゃう人も多いのではないでしょうか。(実は私も…)

IEの標準/互換モードで参照すべきclientHeightが異なる

クロスブラウザに注意がいきがちですが、標準/互換モードによって参照すべきプロパティが変わってくるものもあるとは、、

互換モード document.body.clientHeight
標準モード document.documentElement.clientHeight

[追記]
調べていくと、他のブラウザ(FireFox,Opera..)でも標準/互換モードでウインドウ・ページサイズがらみのプロパティは、値の取れ方が異ってくるようです。
FireFox 1.5では標準/互換モードの違いでdocument.bodyとdocument.documentElementの値が入れ替わりました。


ウインドウ・ページサイズに関するプロパティは、クロスブラウザ&標準/互換モードの組み合わせで検証しないと危険みたいですね。
↓関連するプロパティ

  • window.innerHeight
  • window.innerWidth
  • document.body.scrollHeight
  • document.body.scrollWidth
  • document.body.offsetHeight
  • document.body.offsetWidth
  • document.body.clientHeight
  • document.body.clientWidth
  • document.documentElement.clientHeight
  • document.documentElement.clientWidth