IEのmin-heightは仲間はずれ, min-width, max-widthを実装するヒント

IE6 で element.styleを列挙してみると、element.style.minHeight だけがリストアップされることに気がつきました。
しかし、max-height, min-width, max-width などは見当たりません。
試しに、element.style.minHeight に値をセットしてみても期待した動きはしませんでした。

調査

<style>
#dummy {
  min-width: 16em; max-width: 32em;
  min-height: 160px; max-height: 320px;
}
</style>
PropertyName element.currentStyle element.style
min-height undefined undefined
max-height 320px undefined
min-width 16em undefined
max-width 32em undefined
minHeight 160px ""
maxHeight undefined undefined
minWidth undefined undefined
maxWidth undefined undefined


currentStyle の隠しプロパティ(DontEnum属性付きのプロパティ)を列挙してみると素のCSS名のままで設定値が残されています。

これをうまく組み合わせれば、CSSをパースせずにmin-width, max-heightに対応できそうです。
って、ここまで書いてググったら、minmax.jsってのがすでにあるんだね。
# ちょっと恥ずかしいけどまぁいいや。ここ2年ぐらいWeb界隈から離れててその手の情報がまったく入ってなかったし。

参考までに、minmax.jsの中身も拝見したのですが、大筋の発想は上記の考え方でOKっぽいです。
実装が終わったら、続きをここで報告します。

反省会

  • IEの実装は中途半端だよね。
    • あれかな? バグが収束しないもんだから、鶴の一声で追加予定の機能が凍結されちゃって、中途半端な状態で放置されてる匂いがするね。
      • 良識ある中の人なら「せめて中途半端な機能を不可視にして出荷したい」と考えるけど、それすら許されない開発状況だったのかね。
  • currentStyle の隠しプロパティに気づくまでは、「CSSパーサーも書かなきゃダメ?…」とうっへりしてたので、残してあるならあると言ってほしかったです。
    • でも、CSSのパーサーは結局書くんだろ?
  • min-heightに限らず、他のプロパティも取れる? border-radius とか box-shadow とか
    • currentStyleで取れる!! ちょっとうれしい発見かも。

追記