CSS Hacks まとめ (1) @import hack
明日、会社のCSS勉強会があるので、ネタの一つとして基礎調査。
CSS Hackを原文として、中にあるHackネタを少しずつ紹介。途中で挫折したらごめんちゃい。
はじめに
多分、最も有名なCSS Hackだと思われる@import hackです。
Netscape Navigator 4などのCSS1しか解釈出来ないブラウザ*1が@importを解釈出来ないと言うバグを突いたHackですね。
流れとしては次のようになります。
実装例
head要素内で、
<link rel="stylesheet" type="text/css" href="legacy.css" /> <link rel="stylesheet" type="text/css" href="import.css" />
のように記述し、import.css内で、
@import "modern.css";
のようにします。
ここで注意しなければならないのは@importの後のCSSの所在指定ですけども、urlを使ってしまうとIE4でも読み込まれてしまうと言う問題です。つまり、
@import url("modern.css");
合わせ技
media="all" hack (NN4から見えないようにする)
media属性でall指定があるとNN4だと見えないそうな。
<link rel="stylesheet" type="text/css" href="simple.css" /> <link rel="stylesheet" type="text/css" href="hiddenFromNav4.css" media="all" />
その他
まとめ
- media属性を使ったhackは別に要らない気がする。何故なら@import hackでurlを使わなければ十分legacyブラウザ対策になるからである。
- legacy.cssは実際にはhttp://3ping.org/2006/04/09/0747のようなCSSを当てちゃえばいいんじゃないかなと思ったり。