zu verwenden. Gründe sind die Rückwärtskompatibilität, Kompatibilität mit der XHTML-Syntax (dort sind sie zwingend vorgeschrieben) und bessere Code-Lesbarkeit. Dies gilt auch für Standalone-Tags. Am Besten werden alle Tags in der XHTML-Notationsform eingesetzt. Dadurch stellen Sie sicher, dass jeder Browser die Auszeichnung korrekt interpretiert.
Wie bei Elementnamen so gilt auch bei Attributnamen: Bei HTML spielt es keine Rolle, ob die Attributnamen in Klein- oder Großbuchstaben notiert werden. In XHTML müssen Attributnamen dagegen klein geschrieben werden. Bei den Wertzuweisungen an Attribute kann Groß- und Kleinschreibung, abhängig von der Art des Wertes unterschieden werden oder auch nicht.
Beispiel eines vollständigen HTML5-Dokuments
Zum besseren Verständnis des Gesamtzusammenhangs hier ein einfaches, vollständiges HTML5-Dokument:
Ein schöner Tag Ein schöner Tag
Ein schöner Tag war der Tag, an dem ich lernte, was ein
Tag in HTML ist.
Listing 2.1: Ein vollständiges HTML5-Dokument
Auf das Grundgerüst von HTML-Dokumenten und die einzelnen Elemente gehen wir später ein. Wichtig ist zunächst, die Verschachtelungsstruktur von HTML zu verstehen.Das gesamte Dokument wird in das Tag-Paar
…
eingeschlossen. Die Kopfdaten sind von
…
umgeben, der im Browserfenster sichtbare Dokumentbereich von
…
. Innerhalb des
body
-Bereichs stehen ein
h1
-Element, ein
p
-Element und ein
footer
-Element auf gleicher Ebene. Das
p
-Element enthält neben Text auch ein
strong
-Element. Das
footer
-Element enthält ein
address
-Element.
DOM-Abbildung eines HTML-Dokuments
Die im Dokument notierte Verschachtelungsstruktur wird, wenn das HTML-Dokument vom Browser verarbeitet wird, intern in einer Baumstruktur abgebildet. Die Baumstruktur eines HTML-Dokuments wird als dessen Document Object Model (DOM) bezeichnet. Durch entsprechende Visualisierungs-Tools wie den DOM-Inspector, eine Erweiterung für den Firefox-Browser, oder die Entwicklerwerkzeugansicht des MS Internet Explorers 8 lassen sich solche Baumstrukturen optisch darstellen:
Bild 2.1: Das vollständige HTML-Dokument in der DOM-Ansicht
Jeder Eintrag in dieser DOM-Baumstruktur wird als Knoten (englisch: node ) bezeichnet.
HTML-Parser
Unter einem HTML-Parser versteht man eine Software, die HTML-Auszeichnungen erkennt und die darin ausgedrückte Baumstruktur in eine entsprechende Datenstruktur umsetzt, wie sie von der Software benötigt wird. Jeder Web-Browser verfügt über einen HTML-Parser, um überhaupt mit HTML klarzukommen. Solche HTML-Parser werden nun leider auf den meisten Webseiten mit Syntaxfehlern in der Textauszeichnung konfrontiert. Oft sind es kleinere, nicht allzu tragische Fehler, doch es gibt auch viele Webseiten, deren HTML-Quelltext nur das Prädikat »ungenügend« verdient, weil darin übelste Verunstaltungen der HTML-Regeln vorkommen. Strenge Parser, die die HTML-Regeln genau prüfen, müssten die Umsetzung solcher Webseiten eigentlich abbrechen, und anstelle der Seite würden die Browser dann nur eine lapidare Fehlermeldung anzeigen. Da ein solcher Browser am breiten Markt jedoch keine Chance hätte, weil er kaum eine bekannte Webseite anzeigen würde, sind die HTML-Parser der heute verbreiteten Browser ziemlich gutmütige Wesen, die so ziemlich alles fressen, was ihnen vorgesetztwird, und irgendetwas daraus machen, meistens sogar durchaus das, was der Autor der Webseite erreichen wollte.
Anders ist es, wenn XHTML, also die XML-basierte Variante von HTML, von einem XML-Parser verarbeitet wird. Solche Parser sind angehalten, die Verarbeitung im Fall von Syntaxfehlern abzubrechen, ähnlich wie der Compiler einer Programmiersprache. Bislang wurden XHTML-Dokumente nur von den HTML-Parsern der Browser interpretiert. Mit HTML5/XHTML5 ändert sich das. Wer XHTML5 schreibt, schreibt Code für XML-Parser, nicht für HTML-Parser. Browser oder andere Web-Clients sollen XHTML5 nur noch mit Hilfe eines XML-Parsers verarbeiten.
2.1.2 Whitespace und interpretierte Bereiche in HTML
Wenn Sie einen Texteditor zur Erstellung von HTML-Dokumenten verwenden, oder wenn Sie mit Hilfe einer Script- oder Programmiersprache HTML-Code generieren, sollten Sie die nachfolgenden Regeln