« IE7をやっとインストール | メイン | 金欠病 »

CSSデザインをIE7に対応させる

昨日「IE7をやっとインストール」でそれほど大きなデザインの崩れはなかったと書いたのだが…。

考えてみたら、Firefox(and Opera) と IE7 で崩れないデザインに修正したわけだから IE6 では崩れてしまっている。

ちょっと面倒臭くなってきたなと思い放置しようかとも思ったのだけれど、日本語版の自動アップデートが始まるまではまだまだ主力は IE6 なわけなのでやはり修正することにした。(すべての PC の IE を Ver.7 に移行してしまったためサブ PC を復元し IE6 に戻すなど手間がかかった)

そこで、できるだけ多くのブラウザ――とは言っても Win の IE6、IE7、Firefox(Mozilla)、Opera 以外は無視――である程度意図したデザインになるようにしたいわけだが、まず下記魔法の命令は IE7 には通用しないのですべて削除(これは前回も書いた)

* { -moz-box-sizing: border-box; box-sizing: border-box; }

これを削除し、CSS に準拠したボックスモデルで再構築すると IE6 が崩れてしまうわけだ。

そこでどのように修正すべきなのか調べてみたら、この問題をあっさりと解決できるページを見つけその通りに CSS を記述したら簡単に修正できた。この手の問題は今までの経験上、こちらを直せばこちらが…みたいに一発で解決できるとは思っていなかったのでよかった。

参考:
http://www.deftrash.com/blog/archives/2006/10/ie7doctype.html

要するに、IE6 用にこんな風に記述。

width: 180px;
_width: 200px;

多くのブラウザ用に使う通常の width の下にアンダーバー(アンダースコア)付の _width を記述し、IE6 がアンダーバー付のプロパティを読み込んでしまうバグを利用するわけだ。


ちなみにこの話は CLUB.AKITOMO.NET のデザインには無関係の話。

トラックバック

このエントリーのトラックバックURL:
http://akitomo.net/mtype/mt-tb.cgi/406

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2006年11月04日 09:18に投稿されたエントリーのページです。

ひとつ前の投稿は「IE7をやっとインストール」です。

次の投稿は「金欠病」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。