HTML5 Doctypeを書くとき、正しい方法は何ですか?
<!DOCTYPE html>
または
<!doctype html>
HTMLでは、DOCTYPEは大文字と小文字を区別しません。次のDOCTYPEはすべて有効です。
<!doctype html>
<!DOCTYPE html>
<!DOCTYPE HTML>
<!DoCtYpE hTmL>
XMLシリアル化(XHTMLなど)では、DOCTYPEは必要ありませんが、使用する場合、DOCTYPE
は大文字にする必要があります。
<!DOCTYPE html>
HTML5のXMLシリアル化、別名「XHTML5」を参照してください。
XHTMLドキュメントで
DOCTYPE
を大文字にしないと、XMLパーサーは構文エラーを返します。2番目の部分は、小文字(
html
)、大文字(HTML
)、または大文字と小文字の混在(hTmL
)で記述できますが、引き続き機能します。ただし、 HTML互換XHTMLドキュメントのポリグロットマークアップガイドライン に準拠するには、小文字で記述する必要があります。
2014年もまだ疑問に思う方は、こちらをご覧ください:
HTML5
DOCTYPEは、次のコンポーネントをこの順序で構成する必要があります。
1. A string that is an ASCII case-insensitive match for the string "<!DOCTYPE".
...
注:すべて大文字で表示されているにもかかわらず、仕様ではinsensitive
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仕様では、すべての大文字の例で表示されていますが、仕様では、大文字と小文字が区別されていることが明示的に示されていますinsensitive)。
ポリグロットマークアップ
整形式のXMLドキュメントでもあるHTML5ドキュメントを提供できると便利な場合があります。
ポリグロットマークアップは、[HTML5]のセクション8.1.1で指定されたドキュメントタイプ宣言(DOCTYPE)を使用します。さらに、DOCTYPEは次の規則に準拠しています。
* The string DOCTYPE is in uppercase letters.
そのため、Ployglot Markupは通常のHTML5 Doctypeを使用しますが、追加/変更が加えられています。ディスカッションでは、最も注目すべきは、DOCTYPEがすべてのcapsで宣言されていることです。
合計
[オピニオン]特に考慮しているのでない限り、XMLコンプライアンスを満たすことについてあまり心配しません。ほとんどのクライアントおよびJSベースのサーバー開発では、JSONがXMLに取って代わりました。
したがって、既存のxhtml/xmlベースのレガシーシステムを新しいHTML5機能と共存するように更新しようとしている場合にのみ、これが実際に適用されることがわかります。その場合は、ポリグロットマークアップの仕様を調べてください。
最新の仕様 によると、<!DOCTYPE html>
の大文字と小文字を区別しない一致を使用する必要があります。そのため、ブラウザはどのようなケースでもサポートする必要がありますが、これから<!DOCTYPE html>
が正規のケースであると推論するのが妥当です。
HTML5の標準では、タグは大文字と小文字を区別しません。
http://www.w3schools.com/html5/tag_doctype.asp
より技術的に:( http://www.w3.org/TR/html5/syntax.html )
DOCTYPEは、次のコンポーネントをこの順序で構成する必要があります。
<!DOCTYPE
の大文字と小文字を区別しない一致]である文字列。大文字でも小文字でも「正しい」。ただし、Webフォントを使用してIE7を気にする場合は、<!DOCTYPE html>
を使用するとWebフォントが失敗するIE7のバグのため、<!doctype html>
を使用することをお勧めします(例: この答え )。
これが、私が常にDoctypeを大文字にしている理由です。
ある種の質問は、正しい答えが1つしかないことを意味し、2つの選択肢があり、1つを選ぶように求めています。 HTML5では両方とも<!DOCTYPE html>
および<!doctype html>
は有効です。
そのため、HTML5対応ブラウザーは小文字を受け入れ、htmlを適切に処理します。
HTML5を使用したことのないブラウザーは、Doctypeがなくても、できる限りhtmlを処理しようとすることを聞きました。そして、彼らが認識しない場合、小文字のDoctypeは同じことをします。したがって、これらのブラウザーはHTML5宣言を完全に実装できないため、大文字にすることは意味がありません。