IE6には document.body.style に minHeight プロパティが存在する
JavaScriptでIE6判定をするとき、こんな条件文を書いています。
if (document.body.style.maxHeight === undefined) {
// max-height に対応していない場合(すなわちIE6以下)
}
プロパティは maxHeight
でなく minWidth
や maxWidth
でもいいのですが、 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モードのときのみ有効で標準モードだと効きませんでしたが、ともあれ限定的ながら対応しているのは事実であり、プロパティが存在することも納得です。