Aug18

IE6とFireFoxで知っておくべきmarginに関するCSSハック

今回はコーディングでよく悩まされるIE6とFirefoxでのmarginに関するCSSハックをご紹介します。

たとえば何かのブロック要素をfloatで右か左どちらかに寄せてしまうと、marginのautoが効かなくなります。 その場合は、普通にpxで幅のmarginを合わせることになります。 しかし、IE6とFireFox(FireFoxでなくてもW3C推奨ブラウザ)ではmarginの解釈が異ます。

例えば、左右に10pxをとるとすると、IE6では左右に20pxづつmarginをとったように表示され、レイアウト崩れが生じてしまいます。

これはIE6がCSSに完全に対応していないために起こる現象なので、けっして自分の失敗ではないということを知っておかなければなりません。

対処方法として、IE6だけに効果を表す代表的なCSSハック” *html body をプロパティの前につけて、左右のmarginの数値を半分の5pxに設定します。 これで、IE6、FireFoxともにレイアウト崩れを起こさずにきっちり表示されるでしょう。

IE7がブラウザのシェアをとるまでの当分の間は、こういったCSSハックを行うことがWEBデザイナーは必須となるでしょうね。

*html body div#main {
	width:500px;
	float:right;
	margin:10px 5px;
}

div#main {
	width:500px;
	float:right;
	margin:10px 10px;
}

Related entries

Track back URL

http://www.u-ziq.com/cgi/mt/mt-tb.cgi/73

Coments

ブラウザ間のCSSの表示の違いを考慮して作業するのは、本当に難しいよね。DTPをやってたものとしては、全ての幅、高さ、余白なんかに意味を持たせてしまうクセがついているだけに、どうしても設定したターゲットブラウザ全てに対応できる応用の効くレイアウトにしないといけないことが歯痒くて仕方ないっす。 *と_のハックはよく使うね。

ハックの作業は時間かかりますよね。
MacIEをターゲットに入れてるだけで結構作業時間が変わってきますよね。でもそれをきっちり行う事がプロなんだろうなぁと思います。
ぼくはそこまでできていない。。。

残念ながらIE7ではその方法はつかえないんですよね。
マージン2倍が改善されてるんですよ。
でも 「* html 」 はイキ。

う~~ん。どうしたものか。

IE7では* +htmlで対処するしかないですね。
マージンの問題はIE6用ハックの* htmlで大丈夫ですけど場合によっては当分の間* +htmlと* htmlを組み合わせないといけませんね。
面倒ですけど。。。

Coments

▲TOP

FEED

RSS    

ANNOUNCE

JOB INFO




WHO IS WRITING

WEBコンサルタント

ユージック

テクノラティお気に入りに追加する

WEBデザインとシステムの共存、WEBストラテジーを考えた情報設計(IA)を中心とした話題の情報発信をしています。

BOOKS

CREATORS