HTML/optionale Tags

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

Es gibt in HTML einige optionale Tags, unter anderem die, die die Grundstruktur eines HTML-Dokumentes kennzeichnen.

Empfehlung: SELFHTML empfiehlt, auch optionale Tags zu notieren.

optionale Tags der Grundstruktur[Bearbeiten]

Die Tags <html>, </html>, <head>, </head>, <body> und </body>, die die Grundstruktur einer HTML-Seite kennzeichnen, sind optional, d.h. sie können beim Schreiben von HTML normalerweise weggelassen werden.

Dies ist übrigens keine neue Eigenschaft von HTML5, sondern galt auch schon für frühere HTML-Versionen.

Beachten Sie: Die Ausführungen auf dieser Seite gelten ausschließlich für HTML. Bei XHTML müssen die genannten Tags alle notiert werden.

Elemente sind Pflicht, Tags sind optional[Bearbeiten]

Die Elemente html, head und body sind auch bei HTML Pflicht und werden, wenn der HTML-Autor eines von ihnen weggelassen hat, vom Browser ergänzt. Dabei werden sie natürlich nicht automatisch in die HTML-Datei hineingeschrieben, aber der Browser ergänzt sie in seiner internen Repräsentation des DOM. Das heißt, man kann sich beim Schreiben von CSS oder JavaScript auf die genannten Elemente beziehen, auch wenn sie beim Schreiben der zugehörigen HTML-Datei weggelassen wurden.

Keine Konsistenz erforderlich[Bearbeiten]

Man muss beim Aufschreiben und Weglassen von optionalen Tags auch keine konsistente Linie verfolgen. So ist es technisch korrekt, z.B. <html> wegzulassen (d.h. vom Browser ergänzen zu lassen), aber trotzdem </html> hinzuschreiben. Dies ist aber unnötig verwirrend und sollte vermieden werden.

HTML5: Einschränkungen bei HTML-Kommentaren[Bearbeiten]

Die HTML5-Spezifikation des W3C weist darauf hin, dass das öffnende <html>-Tag nur dann weggelassen werden kann, wenn das erste, was sich im html-Element befindet, kein HTML-Kommentar ist und dass das schließende </html>-Tag weggelassen werden kann, wenn auf das html-Element nicht direkt ein HTML-Kommentar folgt [1]. (Für die Elemente head und body gilt Entsprechendes.)

Diese Einschränkungen sind vielleicht verwirrend, da sie ein bisschen irreführend formuliert sind. Es ist nicht verboten, z.B. Folgendes zu schreiben:

Beispiel
<!doctype html>
  <!-- Mein Kommentar -->
  <head>
    <meta charset="utf-8">
    <title>aussagekräftiger Titel der Seite</title>
  </head>
  <body>
    <p>Der Inhalt der Seite</p>
  </body>
<!-- Noch ein Kommentar -->

Von der formalen Richtigkeit des obigen Codes kann man sich leicht mit einem Validator überzeugen.

Die Spezifikation bezieht sich hier auf die interne Repräsentation des Browsers. Das Weglassen von Tags wie <html> ist ja deswegen erlaubt, weil der Browser normalerweise zweifelsfrei feststellen kann, wo das html-Element beginnt. Wenn auf den Doctype unmittelbar ein <head>-Tag folgt, dann weiß der Browser – weil an dieser Stelle das head-Element noch gar nicht folgen darf – dass er zuvor das <html>-Tag ergänzen muss.

Das einzige kleine Problem dabei sind HTML-Kommentare, die an jeder beliebigen Stelle in die Struktur eingefügt werden können. Da der HTML-Kommentar an dieser Stelle:

Beispiel
<!doctype html>
  <!-- Mein Kommentar -->

durchaus korrekt ist, wird der Browser davor also niemals das <html>-Tag ergänzen. Wenn es also für den HTML-Autor aus irgendeinem Grund wichtig ist, dass der HTML-Kommentar in der internen Repräsentation des Browsers das erste ist, was sich im html-Element befindet, dann muss er das <html>-Tag notieren, ansonsten landet der HTML-Kommentar vor dem html-Element.

Ebenso wird der Browser den Kommentar am Ende der HTML-Datei immer innerhalb des body-Elements positionieren. Auch hier gilt: Will man den Kommentar am Ende einer HTML-Datei außerhalb des body-Elements platziert wissen, dann muss man das </body-Tag notieren.

Entsprechendes gilt auch für die übrigen optionalen Tags, die die Grundstruktur eines HTML-Dokumentes kennzeichnen.

Elemente mit optionalem Abschluss-Tag[Bearbeiten]

Bei einigen Elementen, z.B. p oder li, darf man das schließende Tag weglassen, sofern der Browser zweifelsfrei feststellen kann, wo das Element endet.

Beachten Sie: Verwechseln Sie dies nicht mit leeren Elementen, also Elementen, bei denen das Abschluss-Tag weggelassen werden muss, z.B. <br>.

Empfehlungen[Bearbeiten]

Die traditionelle Empfehlung, die auch SELFHTML immer vertreten hat, lautet, alle optionalen Tags zu notieren. Der Vorteil ist, sofern man valides HTML schreibt, dass der HTML-Code dann immer mit der internen Repräsentation des Browsers übereinstimmt, wodurch die Wahrscheinlichkeit von Missverständnissen verringert wird. Außerdem können Sie natürlich einem Element ohne öffnendes Tag keine Attribute geben.

Der Google HTML/CSS Style Guide empfiehlt hingegen, alle optionalen Tags konsequent wegzulassen:

Beispiel: Eine vollständige HTML-Datei, bei der die optionalen Tags weggelassen wurden
<!DOCTYPE html>
<meta charset="utf-8">
<title>Saving money, saving bytes</title>
<p>Qed.
Beispiel aus dem Google HTML/CSS Style Guide (leicht modifiziert)

Dies diene einem schnellen Überblick über das HTML und optimiere es gleich im Hinblick auf die Dateigröße. Andererseits werde es einige Zeit zur Umsetzung brauchen, weil es deutlich von dem abweiche, was Webentwickler typischerweise lernten (wie etwa bei SELFHTML).

siehe auch[Bearbeiten]

In der HTML-Referenz können Sie für jedes einzelne Element nachschlagen, welche Tags notwendig, optional oder verboten sind.