Es wird normalerweise das erste sein, obwohl jedes verwendet werden kann <! DOCTYPE html>
Shadow
Es gelang mir, meine eigene Frage zu beantworten, aber ich dachte, ich würde sie verlassen, falls andere einen ähnlichen Gedanken hatten. Ich persönlich bevorzuge Kleinbuchstaben. nichts anderes in HTML5 ist in Großbuchstaben.
Joshnh
11
Google.com verwendet Kleinbuchstaben<!doctype html>
Leo Galleguillos
3
@HelloWorld: Das liegt daran, dass Kleinbuchstaben besser komprimiert werden, weil sie häufiger vorkommen. Für Websites, die täglich Millionen von Treffern erhalten, kann dies einen Unterschied machen.
Zaz
Was ist mit SVG-Dateien?
William Entriken
Antworten:
183
In HTML wird bei DOCTYPE die Groß- und Kleinschreibung nicht berücksichtigt. Die folgenden DOCTYPEs sind alle gültig:
In XML-Serialisierungen (dh XHTML) ist DOCTYPE nicht erforderlich. Wenn Sie es jedoch verwenden, DOCTYPEsollte es in Großbuchstaben geschrieben werden:
Nein, das ist falsch. In SGML ist die Dokumenttypdeklaration die Produktion 110, in XML die Produktion 28. In beiden Fällen wird sie als feste Zeichenfolge "DOCTYPE" deklariert (dies ist kein Tag , sondern ein Schlüsselwort ). In den kanonischen Definitionen in den jeweiligen SGML- und XML-Standards wird es also immer in Großbuchstaben geschrieben. Wenn Sie Software finden, die einen "Doctype" in Kleinbuchstaben zulässt, entspricht diese Software nicht den Standards. Browser sind so konzipiert, dass sie "liberal in dem sind, was sie akzeptieren", aber ein kompatibler XML-Prozessor sollte dies als Validierungsfehler kennzeichnen.
Ichiro Furusato
5
... und ich sollte darauf hinweisen, dass X / HTML5 auch hier falsch ist. Wie angegeben, ist XHTML5 einfach kein gültiges XML-Markup und kann es auch nicht sein. Die X / HTML5-Spezifikation enthält zahlreiche Fehler. Ich nehme es nicht sehr ernst. Die Tatsache, dass sie ein " polyglottes Markup " (ein völlig neues Konzept) erstellen mussten, zeigt deutlich, dass sie gestoßen sind.
Ichiro Furusato
20
@Ichiro Ich spreche von HTML, nicht von SGML. Kein Browser hat jemals SGML implementiert. Wenn sie das taten, <title/foo/wäre das gleichbedeutend mit <title>foo</title>. Nur wenige HTML- Validatoren verwenden SGML. Die HTML5-Spezifikation ist die erste, die dies klarstellt: whatwg.org/specs/web-apps/current-work/multipage/…
Mathias Bynens
2
@ TestSubject528491 In diesem Absatz geht es um den zweiten Teil von DOCTYPE ( html). Hier ist der vollständige Satz: „Der zweite Teil kann in Kleinbuchstaben ( html), Großbuchstaben ( HTML) oder sogar in Großbuchstaben ( hTmL) geschrieben werden - er funktioniert weiterhin. Um jedoch den Polyglot-Markup-Richtlinien für HTML-kompatible XHTML-Dokumente zu entsprechen, sollte es in Kleinbuchstaben geschrieben werden. “
Mathias Bynens
15
@IchiroFurusato Vielleicht möchten Sie sich über HTML5 informieren . Zitat: „Im Gegensatz zu früheren HTML-Versionen wird die HTML [5] -Serialisierung jedoch nicht mehr als Anwendung von SGML betrachtet, sondern definiert stattdessen ihre eigene Syntax. Während die Syntax von SGML inspiriert ist, wird sie so definiert, dass sie der Art und Weise, wie Browser tatsächlich mit HTML in der realen Welt umgehen, ähnlicher ist, insbesondere in Bezug auf die Fehlerbehandlung. “
Mathias Bynens
40
Wenn sich 2014 noch jemand wundert, konsultieren Sie bitte Folgendes:
This specification does not define any syntax-level requirements
beyond those definedfor XML proper.
XML documents may contain a DOCTYPE if desired, but thisisnot required
to conform to this specification.This specification does not define
a publicor system identifier, nor provide a formal DTD.
In der XML-Spezifikation wird DOCTYPE in Großbuchstaben aufgeführt, aber ich kann nichts finden, das besagt, dass "alle Großbuchstaben" erforderlich sind (zum Vergleich wird es in der oben aufgeführten HTML5-Spezifikation im Beispiel in Großbuchstaben angezeigt, aber In der Spezifikation wird ausdrücklich angegeben, dass die Groß- und Kleinschreibung nicht berücksichtigt wird .
Polyglot-Markup verwendet eine Dokumenttypdeklaration (DOCTYPE), die in Abschnitt 8.1.1 von [HTML5] angegeben ist. Darüber hinaus entspricht der DOCTYPE den folgenden Regeln:
*Thestring DOCTYPE isin uppercase letters.
Beachten Sie also, dass Ployglot Markup einen regulären HTML5-Doctype verwendet, jedoch mit Ergänzungen / Änderungen. Für unsere Diskussion vor allem, dass DOCTYPE in Großbuchstaben deklariert ist .
[Meinung] Ich würde mir keine Sorgen um die Einhaltung der XML-Konformität machen, es sei denn, Sie versuchen ausdrücklich, Überlegungen anzustellen. Für die meisten Client- und JS-basierten Serverentwicklungen hat JSON XML ersetzt.
Daher kann ich nur sehen, dass dies wirklich zutrifft, wenn Sie versuchen, ein vorhandenes xhtml / xml-basiertes Legacy-System so zu aktualisieren, dass es mit neuen HTML5-Funktionen koexistiert. Wenn dies der Fall ist, schauen Sie in die Polyglot-Markup-Spezifikation.
Gemäß der neuesten Spezifikation sollten Sie etwas verwenden, bei dem die Groß- und Kleinschreibung nicht berücksichtigt wird <!DOCTYPE html>. Obwohl Browser erforderlich sind, um den von Ihnen bevorzugten Fall zu unterstützen, ist es vernünftig, daraus <!DOCTYPE html>den kanonischen Fall abzuleiten.
Die Spezifikation besagt ziemlich deutlich, dass doctype eine Zeichenfolge enthalten muss, bei der die Groß- und Kleinschreibung nicht berücksichtigt wird, was bedeutet, dass '<! DOcTyPe' genauso korrekt ist.
Joshnh
6
Wie gesagt, die Spezifikation erfordert, dass Browser jeden Fall unterstützen, damit jeder Fall funktioniert. Aber der Fragesteller sucht eindeutig nach einer kanonischen Standardform. Wenn also keine triftigen Gründe vorliegen, eine über die andere zu wählen, können Sie auch den Beispielfall aus der Spezifikation verwenden ...
John Mellor
9
Die Spezifikation schreibt es konsequent als <!DOCTYPE html>, daher wäre es vernünftig zu schließen, dass der Autor der Spezifikation diese bestimmte Großschreibung leicht bevorzugt. Ich werde die gleiche Groß- und Kleinschreibung wie die Spezifikation verwenden, da es schön ist, dass diese Dinge konsistent sind, aber wenn Sie es vorziehen, <!dOcTyPedann seien Sie mein Gast :)
John Mellor
3
@ Joshnh Ich verstehe deine Verwirrung nicht. 1) Bei der DOCTYPE-Erklärung muss die Groß- und Kleinschreibung nicht berücksichtigt werden. 2) Die HTML5-Spezifikation verwendet in ihren Beispielen die Großschreibung "DOCTYPE html". Diese Antwort scheint nur zu sagen, dass eine Großschreibung mit der Literatur übereinstimmt, auch wenn alle gültig sind. Warum ist das so empörend?
2
Ich denke, @joshnh hat falsch verstanden, was John zu sagen versuchte. FWIW, ich stimme Johns Ansicht zu, dass es vorzuziehen ist, wenn kein besonderer Grund vorliegt, eine bestimmte Art und Weise zu formatieren. John hat nie versucht zu implizieren, dass es korrekter ist, nur dass es etwas ist, auf das Sie Ihre Präferenz stützen können - ansonsten ist es eine völlig willkürliche Wahl, oder?
Ryan Williams
7
Groß- oder Kleinschreibung ist "richtig". Wenn Sie jedoch Web-Schriftarten verwenden und sich für IE7 interessieren, würde ich die Verwendung <!DOCTYPE html>aufgrund eines Fehlers in IE7 empfehlen, bei dem Web-Schriftarten bei der Verwendung manchmal fehlschlagen <!doctype html>(z. B. in dieser Antwort ).
Deshalb schreibe ich den Doctype immer in Großbuchstaben.
Ich vertraue W3Schools nicht zu 100%, sie sind nicht mit dem W3C verbunden, und obwohl die meisten ihrer Informationen gut sind, sind einige nicht gut.
Joshnh
Dies ist ziemlich weithin bekannt - hier ist der Link zu w3.org
Stephen
4
W3Schools haben nicht mehr oder weniger Fehler als andere Websites. ( Völlig zufälliges Beispiel ) Nehmen Sie die Informationen mit einem Körnchen Salz, konsultieren Sie im Zweifelsfall die w3.org-Seiten, und es wird Ihnen gut gehen. Die wahren Dummköpfe sind diejenigen, die glauben, dass W3Schools eine offizielle Einrichtung ist oder dass ihre Zertifikate irgendetwas bedeuten.
Herr Lister
8
@ MrLister: Ich denke nicht, dass es fair ist, Leute als Narren zu bezeichnen, weil sie denken, dass es eine Verbindung zwischen etwas namens "W3Schools" und etwas namens "W3C" gibt. Die beiden sind in Name und Domäne ähnlich genug, um Verwirrung zu stiften, und die Annahme, dass Ersteres von Letzterem irgendwie befürwortet wird oder mit Letzterem verwandt ist. Das ist offensichtlich die Absicht von W3Schools, was einer der Gründe ist, warum sie so viele Menschen verärgern, die das Problem verstehen. Die Tatsache, dass viele ihrer Informationen ungenau sind, verstärkt das Problem (dh es könnte leicht verzeihlich sein, wenn sie tatsächlich einen angemessenen Service erbracht haben)
Bobby Jack
Der Link zu tag_doctype.aspist ungültig (404) und diese Frage bezieht sich auf die doctypeDeklaration, die kein Tag ist ... Wie auch immer, die Schlussfolgerung ist richtig: In HTML5 kann das Schlüsselwort doctypein Groß-, Klein- oder Großbuchstaben geschrieben werden.
Abel
3
Die Frage impliziert, dass es nur eine richtige Antwort gibt, bietet eine Mehrfachauswahl von zwei und fordert uns auf, eine auszuwählen. Ich würde vorschlagen, dass für HTML5 beide <!DOCTYPE html>und <!doctype html>gültig sind.
Ein HTML5-fähiger Browser würde also den Kleinbuchstaben akzeptieren und den HTML-Code ordnungsgemäß verarbeiten.
Ich habe gehört, dass Browser, die HTML5 noch nicht kennen, auch ohne Doctype versuchen werden, das HTML so gut wie möglich zu verarbeiten. Und wenn sie den Kleinbuchstaben nicht erkennen, wird der Doctype dasselbe tun. Es macht also keinen Sinn, es in Großbuchstaben zu schreiben, da diese Browser ohnehin keine HTML5-Deklarationen vollständig implementieren können.
<!doctype html>
Antworten:
In HTML wird bei DOCTYPE die Groß- und Kleinschreibung nicht berücksichtigt. Die folgenden DOCTYPEs sind alle gültig:
In XML-Serialisierungen (dh XHTML) ist DOCTYPE nicht erforderlich. Wenn Sie es jedoch verwenden,
DOCTYPE
sollte es in Großbuchstaben geschrieben werden:Siehe Die XML-Serialisierung von HTML5, auch bekannt als 'XHTML5' :
quelle
<title/foo/
wäre das gleichbedeutend mit<title>foo</title>
. Nur wenige HTML- Validatoren verwenden SGML. Die HTML5-Spezifikation ist die erste, die dies klarstellt: whatwg.org/specs/web-apps/current-work/multipage/…html
). Hier ist der vollständige Satz: „Der zweite Teil kann in Kleinbuchstaben (html
), Großbuchstaben (HTML
) oder sogar in Großbuchstaben (hTmL
) geschrieben werden - er funktioniert weiterhin. Um jedoch den Polyglot-Markup-Richtlinien für HTML-kompatible XHTML-Dokumente zu entsprechen, sollte es in Kleinbuchstaben geschrieben werden. “Wenn sich 2014 noch jemand wundert, konsultieren Sie bitte Folgendes:
HTML5
W3 HTML5 Spec - Doctype
Hinweis: Obwohl in Großbuchstaben angezeigt, wird in der Spezifikation angegeben, dass es unempfindlich ist
-------------------------------------------------- --------------------
XHTML5
W3 HTML5 - XHTML
In der XML-Spezifikation wird DOCTYPE in Großbuchstaben aufgeführt, aber ich kann nichts finden, das besagt, dass "alle Großbuchstaben" erforderlich sind (zum Vergleich wird es in der oben aufgeführten HTML5-Spezifikation im Beispiel in Großbuchstaben angezeigt, aber In der Spezifikation wird ausdrücklich angegeben, dass die Groß- und Kleinschreibung nicht berücksichtigt wird .
-------------------------------------------------- --------------------
Polyglot Markup
W3 Polyglot Markup - Intro
W3 Polyglot Markup - Doctype
Beachten Sie also, dass Ployglot Markup einen regulären HTML5-Doctype verwendet, jedoch mit Ergänzungen / Änderungen. Für unsere Diskussion vor allem, dass DOCTYPE in Großbuchstaben deklariert ist .
-------------------------------------------------- --------------------
Summe
Zeigen Sie den Abschnitt HTML vs. XHTML des W3 an
[Meinung] Ich würde mir keine Sorgen um die Einhaltung der XML-Konformität machen, es sei denn, Sie versuchen ausdrücklich, Überlegungen anzustellen. Für die meisten Client- und JS-basierten Serverentwicklungen hat JSON XML ersetzt.
Daher kann ich nur sehen, dass dies wirklich zutrifft, wenn Sie versuchen, ein vorhandenes xhtml / xml-basiertes Legacy-System so zu aktualisieren, dass es mit neuen HTML5-Funktionen koexistiert. Wenn dies der Fall ist, schauen Sie in die Polyglot-Markup-Spezifikation.
quelle
Gemäß der neuesten Spezifikation sollten Sie etwas verwenden, bei dem die Groß- und Kleinschreibung nicht berücksichtigt wird
<!DOCTYPE html>
. Obwohl Browser erforderlich sind, um den von Ihnen bevorzugten Fall zu unterstützen, ist es vernünftig, daraus<!DOCTYPE html>
den kanonischen Fall abzuleiten.quelle
<!DOCTYPE html>
, daher wäre es vernünftig zu schließen, dass der Autor der Spezifikation diese bestimmte Großschreibung leicht bevorzugt. Ich werde die gleiche Groß- und Kleinschreibung wie die Spezifikation verwenden, da es schön ist, dass diese Dinge konsistent sind, aber wenn Sie es vorziehen,<!dOcTyPe
dann seien Sie mein Gast :)Groß- oder Kleinschreibung ist "richtig". Wenn Sie jedoch Web-Schriftarten verwenden und sich für IE7 interessieren, würde ich die Verwendung
<!DOCTYPE html>
aufgrund eines Fehlers in IE7 empfehlen, bei dem Web-Schriftarten bei der Verwendung manchmal fehlschlagen<!doctype html>
(z. B. in dieser Antwort ).Deshalb schreibe ich den Doctype immer in Großbuchstaben.
quelle
Der Standard für HTML5 ist, dass Tags die Groß- und Kleinschreibung nicht berücksichtigen.
http://www.w3schools.com/html5/tag_doctype.asp
Technischer: ( http://www.w3.org/TR/html5/syntax.html )
Ein DOCTYPE muss in dieser Reihenfolge aus folgenden Komponenten bestehen:
<!DOCTYPE
.quelle
tag_doctype.asp
ist ungültig (404) und diese Frage bezieht sich auf diedoctype
Deklaration, die kein Tag ist ... Wie auch immer, die Schlussfolgerung ist richtig: In HTML5 kann das Schlüsselwortdoctype
in Groß-, Klein- oder Großbuchstaben geschrieben werden.Die Frage impliziert, dass es nur eine richtige Antwort gibt, bietet eine Mehrfachauswahl von zwei und fordert uns auf, eine auszuwählen. Ich würde vorschlagen, dass für HTML5 beide
<!DOCTYPE html>
und<!doctype html>
gültig sind.Ein HTML5-fähiger Browser würde also den Kleinbuchstaben akzeptieren und den HTML-Code ordnungsgemäß verarbeiten.
Ich habe gehört, dass Browser, die HTML5 noch nicht kennen, auch ohne Doctype versuchen werden, das HTML so gut wie möglich zu verarbeiten. Und wenn sie den Kleinbuchstaben nicht erkennen, wird der Doctype dasselbe tun. Es macht also keinen Sinn, es in Großbuchstaben zu schreiben, da diese Browser ohnehin keine HTML5-Deklarationen vollständig implementieren können.
quelle
Die Doctype-Deklaration unterscheidet nicht zwischen Groß- und Kleinschreibung und alle übereinstimmenden ASCII-Zeichenfolgen
HTML5-Standard
quelle