2011-01-27 3 views
1

マイクロソフトからこのquoteあり: HTMLでは、認識できないタグの内容はどうなりますか?

<![if lt IE 8]> 
<p>Please upgrade to Internet Explorer version 8.</p> 
<![endif]> 
に基本的なHTMLのコメントをコメントのこのタイプを比較し、 は何のハイフンが存在しないことに注意してください(「 - 」) すぐに開封後」コメントブロックは です。したがって、 コメントデリミタは、 認識されないHTMLとして扱われます。ブラウザ は、下位レベルの条件付き コメントを認識しないため、何もしません。

一般的に知られているHTML5ビデオフォールバックソリューションがあります。

<video ...> 
    <!-- If the browser doesn't understand the <video> element, reference a Flash file.--> 
    <embed ...></embed> 
</video> 
  • だから何が認識タグの彼内容witht起こっているのでしょうか?

  • これはどういうわけか、ブラウザの実装方法だけですか?

答えて

0

によって解釈されます。

2つの異なるケースがあります。 <![if lt IE 8]>の場合、これは非IEブラウザで「偽のコメント」として処理され、コメントノードがDOMに追加されます。 IEの機能についてはAxel Fontaineの答えをご覧ください。

<video ...>の場合、IE(バージョン8以前)以外のブラウザでは、「ビデオ」と呼ばれるDOM内の要素が作成され、内容は「ビデオ」要素の子になります。 IE、HTML5 shivが使用されている場合、同じことが行われます。

IE5より前のIEの場合、<video ...>タグは、「VIDEO」という1つの要素を作成します。それは空になります。埋め込みとその他のコンテンツは、その兄弟になります。次に、</video>タグは、 "/ VIDEO"というDOMに別の要素を追加します。

副題として、<embed>要素は無効なので、</embed>は決して正しくありません。これを追加すると、IE9より前のバージョンのIEでは、 "/ EMBED"という要素がDOMに追加されます。

1

これは単なるIEの問題です。他のブラウザは<![if lt IE 8]>を認識し、もう1つはタグとして認識し、無視します。彼らはそれらの間の内容を無視しないので、IE 8以外のすべてのブラウザで段落が表示されるので、この形式を使用することをお勧めします。代わりに、あなたのページを優雅に劣化させるために働きます。

+0

あなたは正しいです。申し訳ありません、私はちょうどテキストを解釈してミスして、そのコンセプトを理解しました。タグが認識されずに隠されていない場合、この構文の全体的な点が示されます。 –

1

ブラウザタグを無視すると無視されます

<![if lt IE 8]> 

IEの条件付きコメントです。これはIEによってのみ認識され、特定のIEバージョンでページの一部のみが表示されるようにします。この場合

は、それがのみがHTML5で標準化されます8以下IEバージョン(IE6、IE7、...、ではなくIE8、IE9、...)

+0

が正しい。私はそのコンセプトを理解しておらず、「何もしない」ということを間違って解釈しただけです。 –

関連する問題