IE6スタンドアローン版と条件分岐コメントの罠
2007年1月12日
IE7を入れたので、IE6のスタンドアローン版をインストールして確認用に使っているのですが、IEの条件分岐コメントではまりました。
条件分岐コメントでIE6以前のバージョンのみにCSSを適用させようと下記のように書きました。
<!--[if lt IE 7]>
<link rel="stylesheet" href="/common/css/ie.css" type="text/css" />
<![endif]-->
これにより、IE6にコメント内のie.cssが適用されるはずなのですが、IE6のスタンドアローン版で確認したところ何故か適用されていませんでした。
xml宣言をはずしたり、文字コードを変えてみたり、いろいろと実験したところようやく適用されない原因わかりました。
IE6のスタンドアローン版は同じPC内にIE7が入っている場合下記のように書かないと読み込まない!
<!--[if IE 7]>
<link rel="stylesheet" href="/common/css/ie.css" type="text/css" />
<![endif]-->
すなわち、IE6のスタンドアローン版は自分自身をIE7として認識しちゃっているということでしょうか?スタンドアローン版だけに、同じパソコンにIE7とIE6を共存させるとお気に入りが同期されてたり、思わぬ箇所で影響があったりもするようです。
条件分岐コメントってうまく使えばかなり有用ですね。他のブラウザにはコメントとしか認識されないので、IEのみの問題なら条件分岐コメントで該当箇所を上書きしてやれば良いですし、CSSを別ファイルにまとめられるので管理も簡単です。
条件分岐コメントの書式や、適用範囲などは「条件付コメント実験ページ」に上手くまとめられています。
条件分岐コメント-追記-
スタンドアローン版のIE6で、条件分岐コメントの挙動がおかしいのはwindowsのレジストリをいじらないと直らないみたいです。ちと初心者には手がでませんね(汗
レジストリ変更の方法をエントリーしました。「IE6スタンドアローン版で条件分岐コメントを正常に動作させる」
現在、この記事へのトラックバックは受け付けていません。
- Links
