DOCTYPE 宣言の前にコメントを記述できますか?
質問
コメントを入れたいのですが(<!-- this -->
style) を HTML コードの一番上、DOCTYPE 宣言の前に置きます。これは規格に準拠していますか?主要なブラウザでサポートされていますか?これを行う際に落とし穴はありますか?
解決
の<!DOCTYPE>
のは、最初の確かベストプラクティスです書き込みます。
<!DOCTYPE>
のを無視します。私は長い、長い時間前に奇妙な問題を覚えています。いずれにせよ、追跡する必要が恐ろしい、恐ろしいバグだった、と前の <!DOCTYPE>
の。
の
<!DOCTYPE>
のを書くのは初めてです、私はちょうど何かを経験したWeb開発者は恐ろしい、とらえどころのないバグを回避するために行う、と言う思います。 他のヒント
それは 完全に有効 すること
<!-- this, -->
<!DOCTYPE html>
しかし、 それはもたらす 全て IE のバージョン 癖モード (そうでない限り 強制的 no-quirks モードに移行します — を参照してください。 落とし穴 以下のセクション)。最も簡単な方法は、コメントを DOCTYPE の下に移動することです。
<!DOCTYPE html>
<!-- this, -->
しかし、別の方法は、 「アップグレード」 コメントを 適切な 条件付き 次のようなコメント:
<!--[if !IE]> this <![endif]-->
<!DOCTYPE html>
説明: ある 条件付き コメントはありません カウント IE の世界ではコメントとして。
代替構文: 条件付きコメントが HTML 標準への Microsoft の侵入であることを忘れたり思い出したりするには、たとえば次のようにします。
<!--[if anybrowser]> this <![endif]-->
<!DOCTYPE html>
同様に、特に IE をターゲットにするには、次のようにします。
<!--[if !anybrowser]> this <![endif]-->
<!DOCTYPE html>
落とし穴
コメント 内部 条件付きコメントは IE を Quirks モードにします IEで見ると (あれは: もし 1つは使用します 【IEの場合】 条件、または [if IE] と同等 — など [任意のブラウザの場合] 上で述べた条件です。)したがって、たとえば、これにより IE が quirks モードになります。
<![if IE]><!-- this --><![endif]>
<!DOCTYPE html>
そうするだろう
<!--[if IE]><!--><!-- this <![endif]-->
<!DOCTYPE html>
その他多くのバリエーションがあります。一方、たとえば
<!--[if IE]><!DOCTYPE html><!--><!-- this <![endif]-->
<!DOCTYPE html>
するだろう ない quirks-mode が発生するため、 ここ 条件付きコメントには DOCTYPE があります 前に 他の したがって、IE はページの最初のコンテンツが DOCTYPE であるとみなします。
最後に、IE の最新バージョン、 IE8とIE9, 、できる 強制的 Microsoft の別の発明、つまり x-ua互換 指令。見る http://msdn.microsoft.com/en-us/library/cc288325(v=vs.85).aspx その場合は、
<!-- this -->
<!DOCTYPE html>
<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=8" ><![endif]-->
意思 力 IE8とIE9へ 癖のない IE6 と IE7 はモードのままになります。 癖 モード。一方、対照的に、 これ
<!--[if gte IE 8]><meta http-equiv="X-UA-Compatible" content="IE=8" ><![endif]-->
<!DOCTYPE html>
するだろう 力 IE8 と IE9 を標準モードにすると、 にもかかわらず 条件付きコメントの内容が行うこと ない DOCTYPE から始めます。また、IE6 と IE7 も、条件付きコメントの対象になっていないため、互換性なしモードのままになります。
それは私が信じている標準あたりの許容ですが、あなたは間違いなく、それはQuirksモードにIEを投げるだろうとして、それを避けたい。
(参照してください。異なるレンダリングモードを発動する)
これは<のhref = "http://www.dojotoolkit.org/forum/dijit-dijit-0-9/dijitによると、DOCTYPEは全くありませんでしたかのようにIE7がQuirksモードでレンダリングする可能性があり-support /コメント-DOCTYPE宣言-原因-datetextboxレンダリング - 面白い - すなわち」のrel = "nofollowをnoreferrer">このページます。
DOCTYPEの前にコメントが許可されますが、Quirksモードに戻すのすべてのIEのバージョンを引き起こしています。彼らは、実際には、時々、その目的のために使用されています。 XML宣言(<?xml version ...?>
)は同じ効果を有し、IE6および以下