質問

コメントを入れたいのですが(<!-- this --> style) を HTML コードの一番上、DOCTYPE 宣言の前に置きます。これは規格に準拠していますか?主要なブラウザでサポートされていますか?これを行う際に落とし穴はありますか?

役に立ちましたか?

解決

<!DOCTYPE>は、最初の確かベストプラクティスです書き込みます。

私はちょうど空白と思うが、多分それはコメントだった - それ以前に一見無害な何かがあったので、いくつかのブラウザ(おそらくIE6)は<!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および以下

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top