Wird Doctype für HTML5-Dokumente benötigt?


10

Kürzlich hatte ich ein Vorstellungsgespräch und eine der Fragen war "Wird Doctype für HTML 5-Dokumente benötigt?". Ich habe mit "Nein" geantwortet, habe aber das Gefühl, dass ich falsch liegen könnte. Ab dem w3 sieht es so aus, als wäre es unbedingt erforderlich, aber wenn ich ein einfaches HTML wie schreibe

<html>
    <body>
        <input type="color" disabled/>
    </body>
</html>

Speichern Sie es als HTML und versuchen Sie es in Chrome zu öffnen - es würde perfekt funktionieren, mit einer neuen Farbeingabe (deaktiviert). Diese Eingabe ist sowohl HTML5 als auch Attribut.

Die Frage ist also: Muss ich den Doctype angeben oder nicht? Was wäre die richtige Antwort für das Interview?


1
Ich denke, Sie könnten argumentieren, dass es ohne das DoctypeElement kein HTML5-Dokument ist.
MetaFight

Sie können hello worldeinen Texteditor eingeben, als HTML speichern und er wird in Chrome gerendert. Es stellt sich heraus, dass Chrome (und viele andere Browser) Dinge für Sie bereitstellen, auch wenn dies "erforderlich" ist.
Intcreator

Antworten:


12

Die richtige Antwort wäre "Es kommt darauf an".

Ein DOCTYPE ist optional für HTML5-Dokumente in der XHTML-Syntax (dh XHTML5-Dokumente):

XML-Dokumente können auf Wunsch einen DOCTYPE enthalten, dies ist jedoch nicht erforderlich, um dieser Spezifikation zu entsprechen.

Für HTML5-Dokumente in der HTML-Syntax ist ein DOCTYPE erforderlich :

Dokumente müssen aus den folgenden Teilen in der angegebenen Reihenfolge bestehen:

[…]

3. EIN DOKTYP.

Ausnahmen


1
Dies ist die vollständige Antwort, wenn "benötigt wird" als "von Spezifikationen erforderlich" interpretiert wird. Es könnte auch so interpretiert werden, dass es sich auf praktische Effekte bezieht. In diesem Fall wäre die Antwort, dass in der HTML-Syntax eine Doctype-Zeichenfolge benötigt wird, um die Browser in den „Standardmodus“ zu versetzen.
Jukka K. Korpela

Ich würde diese Antwort besser mögen, wenn Sie näher erläutern würden, wann ein Dokument HTML oder Xhtml ist. Was bedeutet das für die Browser - wie haben sie entschieden, mit welcher Syntax sie auswerten sollen?
temporärer_Benutzername

6

Auch ich hätte mit "Nein" geantwortet (falsch, wie es passiert).

Allerdings http://www.w3.org/TR/html5/syntax.html#the-doctype sagt:

8.1.1 Der DOKTYP

Ein DOCTYPE ist eine erforderliche Präambel.

DOCTYPEs sind aus alten Gründen erforderlich. Wenn sie weggelassen werden, verwenden Browser in der Regel einen anderen Rendermodus, der mit einigen Spezifikationen nicht kompatibel ist. Durch das Einfügen des DOCTYPE in ein Dokument wird sichergestellt, dass der Browser nach besten Kräften versucht, die relevanten Spezifikationen einzuhalten.

Übrigens, GIYF


1
Der zitierte Teil gilt nur für die HTML-Syntax.
Jukka K. Korpela

Der Fragentitel lautet "Wird Doctype für HTML5-Dokumente benötigt" (QED).
Mawg sagt, Monica

1
Die HTML5-Spezifikation besagt klar und deutlich, dass sie zwei Syntaxen für HTML5 definiert, eine basierend auf Original-HTML und eine vollständig konform mit XML. Was Sie zitieren, beantwortet die Frage nicht, da es nur für eine der Syntaxen gilt.
Jukka K. Korpela

Ah! Endlich verstehe ich. Vielen Dank für die Klarstellung.
Mawg sagt, Monica

2

Wenn Sie ein w3c-standardkonformes HTML5-Dokument schreiben möchten, <!DOCTYPE html>ist dies erforderlich.

In der Praxis benötigen Sie jedoch nicht immer einen Doctype, da jeder gängige Webbrowser Ihr Dokument unabhängig davon rendert. Einige Browser verwenden dann jedoch einen Legacy-Modus, in dem einige Funktionen nicht richtig interpretiert werden und stattdessen in einer früheren Version des Browsers behandelt werden (die meisten davon im Zusammenhang mit dem Layout).

Welche Antwort passt zu diesem Interview ? Das hängt von der Mentalität der Person ab, die Sie interviewt hat. In einem Vorstellungsgespräch spielt es keine Rolle, ob Sie richtig oder falsch liegen. Es ist nur wichtig, welchen Eindruck Sie auf den Interviewer machen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.