11

IEの条件付きコメントとChrome/Firefoxの

<!--[if gt IE 7]> 
Here is some code. 
<![endif]--> 

これは8
より低い任意のIEでのレンダリングからコードを保つために素晴らしい作品しかし、これも続けますChromeとFirefoxでのレンダリングからのコード

これがなぜ起こっているのか、そしてIE以外のブラウザでコードをレンダリングする方法については、何か考えてください。

答えて

42

条件付きコメントは、Microsoft IE固有のルールであり、いかなる標準にも含まれていません。あなたは条件付きコメントの構造を確認した場合:その名前が示唆するとおり

<!--[if gt IE 7]> 
Here is some code. 
<![endif]--> 

は、それはすべてちょうど大きなコメント<!-- comment -->です。 IEは、HTML標準に準拠していないこれらの条件についてコメントをチェックします。

<!--[if !IE]> --> 
This will be rendered by anything but IE. 
<!-- <![endif]--> 

は条件が閉じられたコメントで囲まれている方法を参照してください?あなたは以下の条件を使用し、IEでレンダリングされませんが、他のブラウザでレンダリングないコードを作成するには

そのため、通常のブラウザではIEが条件付きをチェックし、endifまですべてを省略することにします。

EDIT

あなたは別の条件を追加し、IE以外のブラウザでコードをレンダリング維持したい場合は、以下の回避策を使用することができます:私はコメントを開いて使用していた

<!--[if gt IE 7]> <!-- --> 
Here is some code for anything but IE 7 and below. 
<!-- <![endif]--> 

注意再びコードの前にIEをレンダリングするのを防ぐために-->。他のブラウザでも、コメントの一部とみなされます。

+0

私は、IE 8とIE 9のためにコードを表示したいのですが、その前にIEのバージョンはありません。私はまた、コードがChromeとFirefoxに表示されるようにしたい。 – Baxter

+1

あなたがコメントを閉じる限り、私はそれがどんな条件でもすべきだと思います。 – zebasz

+1

私はそれをテストしましたが、うまくいきません。私は回避策を見つけたので、編集して追加します。 – zebasz

関連する問題