IE6には document.body.style に minHeight プロパティが存在する

JavaScriptでIE6判定をするとき、こんな条件文を書いています。

if (document.body.style.maxHeight === undefined) {
  // max-height に対応していない場合(すなわちIE6以下)
}

プロパティは maxHeight でなく minWidthmaxWidth でもいいのですが、 minHeight だけはうまく判定できないことに気づきました。

以下のコードで document.body.style をすべて表示させてみると、たしかにIE6に minHeight が存在するではありませんか!

<table border="">
<tbody>
<script>
(function() {
  var style = document.body.style;
  for (key in style) {
    document.write("<tr><th>" + key + "</th><td>" + style[key] + "</td></tr>");
  }
})();
</script>
</tbody>
</table>
  • 本来はtbody直下にscript要素を置いてはいけません。テスト目的なのでinvalidであることを気にせず書いています。

なんで対応していないのにプロパティだけ存在するのでしょう?

2013年5月15日追記MSDNのページ(msdn.microsoft.com) を見たところ、IE6でも table-layout: fixed な表に対する td, th, tr要素に対してのみ、min-height が有効であるとのこと。試してみたところ、Quirksモードのときのみ有効で標準モードだと効きませんでしたが、ともあれ限定的ながら対応しているのは事実であり、プロパティが存在することも納得です。