HTML5 doctypeを書くとき、正しい方法は何ですか?
<!DOCTYPE html>
または
<!doctype html>
<!doctype html>
HTML5 doctypeを書くとき、正しい方法は何ですか?
<!DOCTYPE html>
または
<!doctype html>
<!doctype html>
回答:
HTMLでは、DOCTYPEは大文字と小文字を区別しません。次のDOCTYPEはすべて有効です。
<!doctype html>
<!DOCTYPE html>
<!DOCTYPE HTML>
<!DoCtYpE hTmL>
XMLシリアル化(XHTMLなど)では、DOCTYPEは必要ありませんが、使用する場合DOCTYPE
は大文字にする必要があります。
<!DOCTYPE html>
HTML5の別名、「XHTML5」のXMLシリアル化を参照してください。
DOCTYPE
XHTMLドキュメントで大文字を使用しない場合、XMLパーサーは構文エラーを返します。2番目の部分は小文字(
html
)、大文字(HTML
)、または大/ 小文字混合(hTmL
)でも記述できますが、引き続き機能します。ただし、HTML互換XHTMLドキュメントのポリグロットマークアップガイドラインに準拠するには、小文字で記述する必要があります。
<title/foo/
と同等になり<title>foo</title>
ます。SGMLを使用するHTML バリデーターはごくわずかです。:HTML5仕様は、この明確にする最初のものであるwhatwg.org/specs/web-apps/current-work/multipage/...
html
)の2番目の部分についてです。完全な文は次のとおりです。「2番目の部分は小文字(html
)、大文字(HTML
)、または大/ 小文字混合()で書くことができますhTmL
—引き続き機能します。ただし、HTML互換XHTMLドキュメントのポリグロットマークアップガイドラインに準拠するには、小文字で記述する必要があります。」
2014年もまだ疑問に思っている方は、こちらをご覧ください。
HTML5
DOCTYPEは、次のコンポーネントで構成されている必要があります。
1. A string that is an ASCII case-insensitive match for the string "<!DOCTYPE".
...
注:すべて大文字で表示されているにもかかわらず、仕様では区別されない
XHTML5
This specification does not define any syntax-level requirements
beyond those defined for XML proper.
XML documents may contain a DOCTYPE if desired, but this is not required
to conform to this specification. This specification does not define
a public or system identifier, nor provide a formal DTD.
XML仕様を見ると、大文字でDOCTYPEがリストされていますが、「すべて大文字」が必要であることを示すものは何も見つかりません(比較のため、上記のHTML5仕様では、すべて大文字で例に表示されていますが、仕様では、大文字と小文字は区別されないことが明示されています)。
ポリグロットマークアップ
整形式のXMLドキュメントでもあるHTML5ドキュメントを提供できると便利な場合があります。
ポリグロットマークアップは、[HTML5]のセクション8.1.1で指定されたドキュメントタイプ宣言(DOCTYPE)を使用します。さらに、DOCTYPEは次の規則に準拠しています。
* The string DOCTYPE is in uppercase letters.
したがって、Ployglot Markupは通常のHTML5 doctypeを使用しますが、追加/変更があることに注意してください。私たちの議論では、最も注目すべきは、DOCTYPE がすべて大文字で宣言されていることです。
総和
[オピニオン]特に考慮を払わない限り、XMLコンプライアンスの満足についてはあまり心配しません。ほとんどのクライアントおよびJSベースのサーバー開発では、XMLに代わってJSONが使用されています。
したがって、既存のxhtml / xmlベースのレガシーシステムを新しいHTML5機能と共存させるように更新しようとしている場合にのみ、これが実際に適用されることがわかります。この場合は、ポリグロットマークアップの仕様を調べてください。
最新の仕様によると、の大文字と小文字を区別しないものを使用する必要があります<!DOCTYPE html>
。したがって、ブラウザはどのようなケースでもサポートする必要がありますが、これ<!DOCTYPE html>
が正規のケースであると推測することは妥当です。
<!DOCTYPE html>
記述しているため、仕様の作成者は特定の大文字の使用をわずかに優先していると推測するのが妥当です。これらが一貫しているのは良いので、仕様と同じ大文字を使用しますが、必要に応じて、<!dOcTyPe
私のゲストになることもできます:)
HTML5の標準では、タグは大文字と小文字を区別しません。
http://www.w3schools.com/html5/tag_doctype.asp
より技術的に:(http://www.w3.org/TR/html5/syntax.html)
DOCTYPEは、次のコンポーネントで構成されている必要があります。
<!DOCTYPE
。tag_doctype.asp
が無効(404)であり、この質問はdoctype
宣言ではありませんが、タグではありませんdoctype
。
質問の種類は、正解が1つしかないことを意味し、2つの複数の選択肢を提供し、1つを選択するように求めます。HTML5との両方<!DOCTYPE html>
で<!doctype html>
有効であることをお勧めします。
したがって、HTML5対応のブラウザは小文字を受け入れ、htmlを適切に処理します。
HTML5の前と後のブラウザーは、Doctypeがなくても、可能な限りHTMLを処理しようとすると聞いています。また、小文字のdoctypeを認識しない場合も同様です。したがって、これらのブラウザーはいずれにしてもHTML5宣言を完全に実装することができないため、大文字にしても意味がありません。