web-dev-qa-db-ja.com

大文字または小文字のDoctype?

HTML5 Doctypeを書くとき、正しい方法は何ですか?

<!DOCTYPE html>

または

<!doctype html>
163
joshnh

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ドキュメントのポリグロットマークアップガイドライン に準拠するには、小文字で記述する必要があります。

166
Mathias Bynens

2014年もまだ疑問に思う方は、こちらをご覧ください:

HTML5

W3 HTML5 Spec-Doctype

DOCTYPEは、次のコンポーネントをこの順序で構成する必要があります。

1. A string that is an ASCII case-insensitive match for the string "<!DOCTYPE".
...

注:すべて大文字で表示されているにもかかわらず、仕様ではinsensitive

-------------------------------------------------- --------------------

XHTML5

W3 HTML5-XHTML

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)。

-------------------------------------------------- --------------------

ポリグロットマークアップ

W3ポリグロットマークアップ-イントロ

整形式のXMLドキュメントでもあるHTML5ドキュメントを提供できると便利な場合があります。

W3ポリグロットマークアップ-Doctype

ポリグロットマークアップは、[HTML5]のセクション8.1.1で指定されたドキュメントタイプ宣言(DOCTYPE)を使用します。さらに、DOCTYPEは次の規則に準拠しています。

* The string DOCTYPE is in uppercase letters.

そのため、Ployglot Markupは通常のHTML5 Doctypeを使用しますが、追加/変更が加えられています。ディスカッションでは、最も注目すべきは、DOCTYPEがすべてのcapsで宣言されていることです。

-------------------------------------------------- --------------------

合計

W3のHTML対XHTMLセクションを表示

[オピニオン]特に考慮しているのでない限り、XMLコンプライアンスを満たすことについてあまり心配しません。ほとんどのクライアントおよびJSベースのサーバー開発では、JSONがXMLに取って代わりました。

したがって、既存のxhtml/xmlベースのレガシーシステムを新しいHTML5機能と共存するように更新しようとしている場合にのみ、これが実際に適用されることがわかります。その場合は、ポリグロットマークアップの仕様を調べてください。

35
ucsarge

最新の仕様 によると、<!DOCTYPE html>の大文字と小文字を区別しない一致を使用する必要があります。そのため、ブラウザはどのようなケースでもサポートする必要がありますが、これから<!DOCTYPE html>が正規のケースであると推論するのが妥当です。

17
John Mellor

HTML5の標準では、タグは大文字と小文字を区別しません。

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

より技術的に:( http://www.w3.org/TR/html5/syntax.html

DOCTYPEは、次のコンポーネントをこの順序で構成する必要があります。

  1. ASCII文字列<!DOCTYPEの大文字と小文字を区別しない一致]である文字列。
6
Stephen

大文字でも小文字でも「正しい」。ただし、Webフォントを使用してIE7を気にする場合は、<!DOCTYPE html>を使用するとWebフォントが失敗するIE7のバグのため、<!doctype html>を使用することをお勧めします(例: この答え )。

これが、私が常にDoctypeを大文字にしている理由です。

6
jpw

ある種の質問は、正しい答えが1つしかないことを意味し、2つの選択肢があり、1つを選ぶように求めています。 HTML5では両方とも<!DOCTYPE html>および<!doctype html>は有効です。

そのため、HTML5対応ブラウザーは小文字を受け入れ、htmlを適切に処理します。

HTML5を使用したことのないブラウザーは、Doctypeがなくても、できる限りhtmlを処理しようとすることを聞きました。そして、彼らが認識しない場合、小文字のDoctypeは同じことをします。したがって、これらのブラウザーはHTML5宣言を完全に実装できないため、大文字にすることは意味がありません。

2
Clive