7

HTMLドキュメントに2つのDoctypeがある場合、Doctypeはページのレンダリングにどのように影響し、ブラウザはどのDoctypeを選択しますか?1つのドキュメントに2つ(またはそれ以上)のDoctypeが含まれていることは有効ですか、それとも混乱を招きますか?

例:

<!DOCTYPE html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html>

</html>
4

3 に答える 3

7

単一のDoctype宣言のみが許可されます。これは、HTML仕様とHTML5ドラフトに直接準拠しており、バリデーターを使用して確認することもできます。

したがって、何が起こるべきかについての仕様はありません。当然のことながら、ブラウザはブラウザモード(Quirksモードと標準モード)を決定するときに「doctypeスニッフィング」でのみDoctype宣言を処理するため、最初のDoctype宣言のみが有効になり、他の宣言は無視されます。

これは、たとえば次のようにテストできます(HTML 3.2 doctypeを使用して、すべてのdoctype-snifferブラウザーでQuirksモードをトリガーします)。

<!DOCTYPE HTML>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<title>Testing duplicate doctype effect</title>
<script>
document.write(document.compatMode);
</script>
</html>

これにより、「CSS1Compat」(=標準モード)が表示されますが、Doctype宣言を交換すると、「BackCompat」(=クァークズモード)が発生します。

于 2012-10-30T07:11:38.813 に答える
0

私は、最初DOCTYPEのものがブラウザによって使用されていると信じており、ドキュメントに複数を含めることは仕様に反しています。

DOCTYPE複数の-s有効である可能性がある唯一の状況は、IE条件付きコメントを使用する場合であると(わかりませんが)思います。もちろん、IE以外のブラウザはそれらを認識しません。

ブログエントリを読んだことを覚えていますが(今は見つからないので、これは間違っているかもしれません)、一部の(ほとんどの?)ブラウザは、最初に遭遇したものでなければDOCTYPEを無視します。(これは、それ以降に修正されたバグである可能性があります。)

W3Schoolのリファレンスページは次のDOCTYPEとおりです。

http://www.w3schools.com/tags/tag_doctype.asp

于 2012-10-30T04:20:30.133 に答える
0

HTMLページに複数のDOCTYPEが含まれている場合、ブラウザは最初のDOCTYPEを考慮し、ブラウザはDOMを1行ずつ解析します。ブラウザがDOCTYPEを取得すると、他のDoctypeの検索を停止し、HTMLタグの検索にジャンプします。

上記の質問では、最初にHTML-5 DOCTYPEが言及され、次にHTML-4が言及されています。このブラウザによると、HTML-5DOCTYPEとしてレンダリングされます。

http://www.w3schools.com/で一度試してみることをお勧めします...両方のDoctypeに優先順位を付けて、「code」または「kbd」または「dfn」または「samp」または「strong」タグを使用してみてください。

于 2012-10-30T05:03:46.953 に答える