Sep 15, 2008
このブログを書き始めてからの解析結果では、「css ie5 読み込み」というキーワードが何故かトップなんですよね。
来た人はガッカリしただろうな。。。対応しない前提で書いてるからな。
Hide CSS from browsersを見て解決した人が多いと思いますが、一応、IE5に対応するパターンを書こうと思います。
「外部CSSを読み込む時に対象ブラウザを絞り込む」という記事もそうでしたが、今回書く方法はCSSの構文的にエラーです。
それが気に食わない場合、PHPなど、サーバ側で処理するなりしてください。
それらに関しては、書いている人が沢山いるし、私の場合は「一枚修正すれば、ターゲットブラウザが減っても簡単に対応できる」方法の方がメリット大だと思うので。。。
ただ、制作会社さんなどで働いている場合、「ウチのHTML + CSSはvalidです」って言えるのは、クライアントさんに対して分かり易いと思うので、なかなか「HTMLが冗長になるよりいいじゃん」と割り切れないでしょうが。。。
HTML書いたり、ましてデザインなんかするのは面倒なので、css Zen Gardenのhtmlサンプルを拝借しました。
html - site.css - style.css
- legacy.css - style.css /* IE5.x */
といった感じで、ターゲットブラウザには“style.css”を読み込ませるようにします。
<link rel="stylesheet" type="text/css" media="all" href="common/style/site.css" />
/* site.css */
/* Not lt IE8 */
@import 'style.css' all;
/* IE6,IE7 */
@import url\ ("style.css");
/* IE4,5 */
@import\ url("legacy.css");
/* MacIE */
/*\*//*/
@import "style.css";
/**/
/* legacy.css */ @import "style.css"; /* @importの時にurlなしで書くとIE4は読まない */
サンプルでは、下記のように書いてます。
最後の項目はちょっと冗長なので、MacIE同様、コメント系のハックを使った方が良いかもです。
WEB標準なブラウザ:背景/白
IE7:背景/グレー
IE6:背景/オリーブ
IE5.x:背景/ブルー
MacIE:背景/グリーン
で、表示されるはずです。