Single Article

IE6でmin-width,max-widthを実装する:CSS

IE7にも実装されたCSSのmin-width,max-width(min-height,max-heightも)は、リキッドレイアウトを採用する場合には非常に便利な属性なのだが、IE6で対応していないので、なんとか適用する方法を調べた。

まず、普通のモダンブラウザに適用するwidthとheightを適用する。

#container {
min-width: 600px; max-width: 1200px;
}

次に、IE6用にはJavaScriptのexpressionメソッドを使用して適用する。

* html #container {
width:expression(document.body.clientWidth < 600? “600px” :
document.body.clientWidth > 1200? “1200px” : “auto”);
}

ちなみにexpressionメソッドはIEに特有のもの(ダイナミックプロパティという)なので他のブラウザでは無視されるものの、余計なコードを読み込ませないように、「* html」hack(IE6以下だけに読み込ませるハック)を使用して分離するのが吉。

Related Posts

Trackback URL

One Comment

  1. Posted 2008/12/11 at 11:56 am | Permalink

    参考にさせていただきます。
    ありがとうございました。

5 Trackbacks/Pingbacks

  1. [...] IE6でmin-width,max-widthを実装する:CSS | Tech de Go [...]

  2. メモ:IE6でmin-height…

    別件で、久しぶりにCSSをいじってたんですが、IE6でmin-height(max-height、min-width、max-widthなんかも)が使えない問題に再度ぶつかる。
    前にこの問題にあたったときは、面倒くさくて「IE対応….

  3. IE6で「max-width」を使って、自動改行されない文字列を制御する方法…

    clientWidthを基準にして数値を一定の範囲に丸めてしまうという方法ですから、ブロックのレイアウト時にしか使用できません。 今回は、ページ中に不規則に何度も現れる要素のmax-widthを…

  4. リキッドスタイルに最大幅と最小幅を設定…

    最近、このブログをちょくちょく見に来ている人は、毎日、ブログのどこかが変化しているい…

  5. IE6のmax-widthとmin-widthと、expressionについての覚え書き [CSS, JavaScript]…

    max-widthのよくあるサンプル
    IE6でmax-widthに対応しようと思って検索してみたらIE独自拡張のexpressionで実現しているケースが多く見られました。概要はこんな感じでしょうか。

    *html #container {…

Post a Comment

Your email is never published nor shared.