IE に適用させないための各種 CSS ハックは、IE7 で修正される事になりそう。
修正しておいた方が良い一般的なハック
IEBlog では下記のハックを使用しているウェブページは修正しといた方が良いよってな事を呼びかけている。
- Child Hack ( body > #foo )
- StarHtmlHack ( * html #foo )
- The Owen Hack ( head:first-child+body #foo )
- head + body Selector ( head + body #foo )
こういったハックを使わずに、IE 独自実装の Conditional Comments を使うことを推奨しているんだけれど、head 内に記述するのはあまりスマートじゃない気がして個人的には好きじゃなかったりする。
<!--[if IE]>
<style>
メソッド
</style>
<![endif]-->
なんだかんだ言いながら、IE7 用のハックが発見されるような気がするけど、結局は IE7 が CSS を正しく解釈してくれれば何の問題も無いんじゃないのって思ったりして。
スタンドアローン版 IE の問題
今まで知らなかったんだけど、テスト用に一つの PC に複数バージョンの IE を共存させるためのスタンドアローン版の IE を入れている場合、バージョンごとの Conditional Comments は機能しないみたい。「Taming Your Multiple IE Standalones」で解決方法が示されている。
Comments
>こういったハックを使わずに、IE 独自実装の Conditional Comments を使うことを推奨しているんだけれど、head 内に記述するのはあまりスマートじゃない気がして個人的には好きじゃなかったりする。
条件付コメント内で、link要素を記述して外部CSSを読み込めば、IEハック用のファイルだけをひとつにまとめられるから、なかなかスマートなのではないかって思うのですが、どうでしょう。そもそもそうしたコメントを記述すること自体が、好みでないという場合もありますけれども。
ところでMicrosoft側では、CSS内で条件付コメントのように振り分ける方法も検討されたようで、一番スマートな解法かとも思ったのですが、IE7では実装されないようですね。
例えば、IE6、7 とバージョンが上がっていくたびに、もしかしたらそれぞれのバージョンにに対応したハックの CSS を Conditional Comments で振り分けていく可能性もあるわけで、個人的にはスタイルのために (X)HTML 側をいじるのは好きじゃないなぁって感じなわけです。
>ところでMicrosoft側では、CSS内で条件付コメントのように振り分ける方法も検討されたようで、一番スマートな解法かとも思ったのですが、IE7では実装されないようですね。
へぇー、そんなことが検討されてたんですか。うーん、そっちの方が良かったなぁ。