2011-01-27 22 views
2
<![if lt IE 7]> code to be executed by internet explorer versions prior to 7 <![endif]> 

素晴らしいとうまくいくようです。私が見つけることができる唯一の技術仕様は、マイクロソフトにあり、それはInternet Explorerによって解釈されることを明確に述べています。条件付きHTMLコメントの互換性?

ですので、通常のコメントは<!-- comment -->のようになります。

私の質問:

一部のブラウザではコメントとしてではなく、コードとして<![if lt IE 7]>を解釈し、単なるそれを表示しないで終わるだろうか?

私はこのqustionがうまく形成されないかもしれないが、私はそれをより正確に言い換える方法を知らないことを知っています。私は変更することができますので、不明な場合は、編集してコメントすること自由に感じてください。

答えて

3

それはない

<![if lt IE 7]> 

だ、それは

<!--[if lt IE 7]> 

ですのでノー、正しく最初の場所でHTMLコメントを解析し、他のブラウザでは、常にコメントブロックを開き<!--が表示されます。

+0

ちょうど指摘すると、最初のタイプは実際に有効であり、実際にはネストするときに必要です。 http://www.dynamicdrive.com/forums/showthread.php?t=17401 –

+0

これはおそらくIEにとっては有効ですが、他のブラウザはそれを正しい形式のコメントとして扱うことはありません。せいぜい、彼らはそれを無視するだけですが、それは適切なHTMLではありません。 – Pointy

+0

また、フォーラムの投稿はやや偽です。 Firefoxはネストされたコメントによって「混乱」することはありませんが、誤ったものとして正しく扱われます。有効なコメントのどこにでも " - "という文字列を入れることはできません。 – Pointy

1

条件付きコメントは実際にHTMLのコメントますどの<!--が先行している...

<!--[if IE 7]> 
Special instructions for IE 7 here 
<![endif]--> 

ので、ブラウザがコメントをサポートしている場合、それはそれは表示されません。そして私は、2000年ごろから作られたブラウザはHTMLコメントをサポートしていることを覚えています。 Microsoftのビットより深い読み

1

に基本的なHTMLのコメント、 何ハイフンがないことを通告コメントのこのタイプを比較する(「 - 」)のすぐ開封後 「を」コメントブロックは です。したがって、 コメントデリミタは、 認識されないHTMLとして扱われます。ブラウザ は、下位レベルの条件付き コメントを認識しないため、何もしません。 基本的なHTMLコメントに類似 開閉タグ、中 -

下位レベルの隠された条件付き コメントは( "")ハイフンが含まれています。 は タグの開始部分に表示され、[endif]はタグの終了部分の より前に配置されます。コンテンツはコメント のタグ内に配置されます。 最初の4つの文字と コメントの最後の3つの文字は、基本的なHTML コメント要素と同一であるため

は、ダウンレベルのブラウザ は コメントブロック内のHTMLコンテンツを無視します。コンテンツは であり、 は条件付きコメントをサポートしていないため、このタイプの条件付きコメントは と呼ばれ、下位レベルの非表示となっています。

条件式の結果は、コメントブロックが解析され、 は、Internet Explorer 5と 以降でレンダリングさ 内部コンテンツ真である場合。この動作により、 下位非表示の条件付き コメントは、特に のコンテンツ(Internet Explorer用に設計された )で特に便利です。

関連する問題