条件付コメントで IE と IE 以外で HTML を切替える

IE の 独自仕様に 「条件付コメント」というものがあります。

条件付コメントは 次のように書きます。

<!--[if IE]>
  IE は、この部分をコメントとして扱いません。
  IE 以外のブラウザは、この部分をコメントとして扱います。
<![endif]-->

IE と IE 以外のブラウザで HTML を 切替えたいときは この条件付コメントを使うことができます。

次のように書くことで IE と IE 以外のブラウザで HTML を切り替えることができます。

<!--[if IE]>
  IE のみ
<![endif]-->

<!--[if ! IE]>-->
  IE 以外のブラウザ
<!--<![endif]-->

ポイントは、IE 以外のブラウザ側の記述で コメントを閉じておくことです。 次のように書くと、IE 以外のブラウザでは 何も表示されなくなります。

<!--[if IE]>
  IE のみ
<![endif]-->

<!--[if ! IE]>
  こう書いてしまうと、この部分は 常にコメントになります。
<![endif]-->

以前書いた「 URL に基本認証のユーザ情報を入れるケース」のように Firefox は OK なのに IE でのみエラーになってしまう場合も 次のように書くことで 回避することができます。

<!--[if IE]>
  <a href="http://www.example.com/">IE 用</a>
<![endif]-->
<!--[if ! IE]>-->
  <a href="http://uesr:pass@www.example.com/">IE 以外用</a>
<!--<![endif]-->

JavaScript なども使用することなく IE の仕様で IE を判定するので簡単です。

ちなみに IE をバージョンごとに判定することもできます。

Google サイト内検索

Amazonアソシエイト