Was ist die richtige Methode beim Schreiben des HTML5-Doctype?
<!DOCTYPE html>
oder
<!doctype html>
<!doctype html>
Was ist die richtige Methode beim Schreiben des HTML5-Doctype?
<!DOCTYPE html>
oder
<!doctype html>
<!doctype html>
Antworten:
In HTML wird bei DOCTYPE die Groß- und Kleinschreibung nicht berücksichtigt. Die folgenden DOCTYPEs sind alle gültig:
<!doctype html>
<!DOCTYPE html>
<!DOCTYPE HTML>
<!DoCtYpE hTmL>
In XML-Serialisierungen (dh XHTML) ist DOCTYPE nicht erforderlich. Wenn Sie es jedoch verwenden, DOCTYPE
sollte es in Großbuchstaben geschrieben werden:
<!DOCTYPE html>
Siehe Die XML-Serialisierung von HTML5, auch bekannt als 'XHTML5' :
Beachten Sie
DOCTYPE
, dass der XML-Parser einen Syntaxfehler zurückgibt, wenn Sie in einem XHTML-Dokument keine Großbuchstaben eingeben.Der zweite Teil kann in Kleinbuchstaben (
html
), Großbuchstaben (HTML
) oder sogar in Großbuchstaben (hTmL
) geschrieben werden - es funktioniert weiterhin. Um den Polyglot-Markup-Richtlinien für HTML-kompatible XHTML-Dokumente zu entsprechen , sollte sie jedoch in Kleinbuchstaben geschrieben werden.
<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
Ein DOCTYPE muss in dieser Reihenfolge aus folgenden Komponenten bestehen:
1. A string that is an ASCII case-insensitive match for the string "<!DOCTYPE".
...
Hinweis: Obwohl in Großbuchstaben angezeigt, wird in der Spezifikation angegeben, dass es unempfindlich ist
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.
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
Manchmal ist es hilfreich, HTML5-Dokumente bereitstellen zu können, die auch gut geformte XML-Dokumente sind.
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:
* The string DOCTYPE is in 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 .
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.
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.
<!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.
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
.tag_doctype.asp
ist ungültig (404) und diese Frage bezieht sich auf die doctype
Deklaration, die kein Tag ist ... Wie auch immer, die Schlussfolgerung ist richtig: In HTML5 kann das Schlüsselwort doctype
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.
Die Doctype-Deklaration unterscheidet nicht zwischen Groß- und Kleinschreibung und alle übereinstimmenden ASCII-Zeichenfolgen