HTML heißt ausgeschrieben Hypertext Markup Language (zu deutsch: Auszeichnungssprache für verweiskräftigen Text). Es handelt sich dabei um eine Beschreibungssprache für Webdokumente. HTML definiert ganz allgemein gesehen die Struktur eines Dokuments. Es beschreibt zum Beispiel, an welcher Stelle ein Bild erscheint, wo sich Text befinden soll und wie eine Tabelle strukturiert ist. HTML ist die bekannteste Sprache des Web und bildet das Grundgerüst jeder Webseite.
HTML ist sehr statisch und keine Programmiersprache. Dynamische Elemente wie bewegte Texte, Ausklappmenüs oder fliegende Bilder lassen sich mit HTML allein nicht realisieren. Für derartige Effekte sind andere Sprachen wie zum Beispiel JavaScript notwendig. Frühere HTML–Versionen waren auch in der Lage, die Präsentation des Webauftritts zu gestalten. Die jüngeren Versionen verzichten auf diese Elemente. Präsentationsangaben sollen nun mit Hilfe von CSS erfolgen.
Um HTML–Dokumente anzuzeigen, braucht man einen Browser. Der Browser ist ein Programm, dass das Dokument einliest, auswertet und gemäß der vorhandenen Definitionen anzeigt. Da es sich bei HTML–Dateien um ASCII–Dateien handelt (also Dateien, in denen die Buchstaben wie in einer normalen txt–Datei erscheinen), reicht zum Schreiben einer HTML–Datei ein einfacher Texteditor aus (zum Beispiel Notepad). Man kann aber auch auf einen der zahlreichen für HTML kreierten Editoren zurückgreifen. Sie besitzen eine große Anzahl an Merkmalen, die das Erstellen der Dateien erleichtern und beschleunigen.
HTML wurde wie das WWW (World Wide Web) 1990 von Tim Berners–Lee am Genfer CERN–Institut im Rahmen der Vernetzung von Computern erstellt. Das WWW und mit diesem auch HTML wurden aber erst mit Aufkommen der ersten grafischen Browser populär. Diese konnten den Inhalt einer Seite formatiert anzeigen und besaßen die Möglichkeit, Bilder oder andere grafische Elemente wie Buttons oder Textfelder anzuzeigen. Im Laufe der Zeit wurde HTML weiter entwickelt und durch neue Techniken erweitert. Nach der ersten Version 1.0 folgte 1995 die zweite 2.0, in der aber nur wenige Erneuerungen zu finden waren. 1997 wurde HTML 3.2 herausgegeben und 1998 die vorerst letzte auf SGML–Technik aufbauende HTML–Version 4.0. Darin wurde weniger auf neue Features hingearbeitet als mehr auf die Grundaufgaben von HTML. So wurden Eigenschaften, die in 3.2 eingeführt wurden, wieder entfernt beziehungsweise als "deprecated" bezeichnet, was bedeutet, dass es diese Merkmale zwar noch gibt, sie aber nicht verwendet werden sollten. Gestalterische Aufgaben übernahm die Erweiterungssprache Cascading Stylesheets (CSS).
Die Syntax einer Sprache beschreibt den genauen Aufbau und ihr Aussehen, sozusagen die Grammatik und Rechtschreibung. Ursprünglich beruht HTML auf einer Sprache namens SGML (Standard Generalized Markup Language). Diese Sprache ist im Prinzip eine Baubeschreibung für andere Sprachen, die ähnliche Zwecke wie HTML verfolgen. Auf der Grundlage von SGML sind in einer Document Type Definition (DTD) Elemente, Attribute und Werte definiert, die den Gesamtsprachschatz von HTML ausmachen. Innerhalb der Document Type Definition wird exakt beschrieben, welche Elemente es gibt, über welche Attribute diese verfügen und welche Werte letztere erhalten dürfen. Darüber hinaus ist dort beschrieben, welche Elemente wo vorzufinden sein dürfen und wo nicht. Um „saubere“ Dokumente schreiben zu können, sollte die Deklaration (Ausschreibung) der Version am Anfang der HTML–Datei nicht fehlen. Sie sagt über das betreffende Dokument aus: „Dieses Dokument ist konform mit den Regeln in der HTML–DTD [xxx].“. Die Deklaration wird mit der DOCTYPE Auszeichnung nach folgendem Schema notiert: <!DOCTYPE Hauptelement Status „Deklaration“ „DTD–URL“>
Legende:
DOCTYPE: Bezeichnet, dass es sich um die Deklaration des Dokumenttyps handelt.
Hauptelement: Bezeichnet das Element, welches alle anderen einschließt. In HTML ist es
html.
Status: Bezeichnet den Status der DTD. Allgemein wird PUBLIC verwendet.
Deklaration: Bezeichnet, um welche DTD es sich handelt.
DTD–URL: Die URL–Angabe zur betreffenden DTD, in der die Festlegungen öffentlich
zugänglich festgehalten werden. Insgesamt existieren zur HTML–Version
4.0/4.01 drei HTML–Varianten, denen in den drei folgenden URL's Rechnung
getragen wird.
http://www.w3.org/TR/html4/strict.dtd
HTML 4.0/4.01 Strict. Diese DTD umfasst den Kernbestand an Elementen und
Attributen. Es fehlen die meisten Elemente und Attribute zur Beeinflussung der
Präsentation. Deren Rolle sollen Stylesheets übernehmen.
http://www.w3.org/TR/html4/loose.dtd
HTML 4.01 Transitional. Diese DTD enthält noch ältere Elemente und Attribute.
Damit soll Webautoren, die noch nicht logische Strukturierung und Präsentation
voneinander trennen, die Möglichkeit gegeben werden, standardkonformes
HTML zu schreiben. Gleichzeitig soll sie sicherstellen, dass bestehende
Webseiten weiterhin durch aktuelle Webbrowser angezeigt werden.
http://www.w3.org/TR/html4/frameset.dtd
HTML 4.01 Frameset. Diese DTD enthält zusätzlich zu allen Elementen der
Transitional–Variante noch die Elemente für die Erzeugung von Framesets.
Elemente sind die Grundpfeiler von HTML. Ein Element ist eine Einheit, die eine bestimmte Struktur oder ein Objekt darstellt. Elemente sind beispielsweise Bildeinbindungen, Buttons oder Absätze. Ein Element wird durch zwei Tags beschrieben. Mit dem ersten Tag beginnt der Bereich des Elements. Ist das erste (oder öffnende) Tag abgeschlossen, folgt der Elementinhalt oder „Gültigkeitsbereich“. Soll der Elementinhalt abgeschlossen werden, folgt das zweite (schließende) Tag. Ein Tag wird immer mit einem Kleiner–als–Zeichen (<) eingeleitet, dem der Elementname folgt. Geschlossen wird ein Tag mit einem Größer–als–Zeichen (>). Zur Unterscheidung von öffnendem und schließendem Tag wird vor dem Elementnamen des schließenden Tags ein Schrägstrich (/) gesetzt. Schematisch sieht ein Element mit seinen Tags und dem dazugehörigen Elementinhalt wie folgt aus:
<Elementname> Elementinhalt </Elementname>
Da manche Elemente wie zum Beispiel Bilder, Buttons oder Zeilenumbrüche keinen Elementinhalt besitzen, gibt es für diese nur einen öffnenden Tag. Diese Elemente nennt man „leere“ Elemente.
Die meisten Elemente besitzen bestimmte Attribute. Ein Attribut ist eine bestimmte Eigenschaft des jeweiligen Objekts. Ein Attribut eines Bildes ist etwa dessen Zieldatei oder Größe. Attribute werden immer innerhalb des öffnenden Tags, aber nach dem Elementnamen notiert. Ein Attribut setzt sich meist aus einem Attributnamen und einem Wert, zum Beispiel die Größe eines Bildes in Pixel, zusammen. Dabei wird als erstes der Attributname notiert gefolgt von einem Ist–gleich–Zeichen (=); anschließend folgt der Wert innerhalb von doppelten hochgestellten Anführungszeichen:
<Elementname Attributname=“Wert“> ... </Elementname>
Bei Attributen, die keinen oder nur einen festgelegten Wert haben, wird meist nur der Attributname notiert.
Will man verschiedene Elemente miteinander kombinieren, so sollte man auf die richtige Reihenfolge und Verschachtelung der Elemente achten. Das innerste Element sollte als erstes geschlossen werden und alle weiteren von innen nach außen.
Jede HTML–Datei besteht aus einem festen Grundgerüst: dem sogenannten head (engl. Kopf) und dem body (engl. Körper) sowie einem alles umschließenden html–Element. Das html–Element besitzt keine nennenswerten Attribute, ist aber für die Einheit der Seite wichtig. Innerhalb dieses Elements werden alle sichtbaren und unsichtbaren Inhalte notiert. Der head–Bereich umfasst größtenteils nicht–sichtbare Objekte und definiert die Seite, Skripte oder Stilangaben näher. Im head sollte der Titel der Seite notiert werden, der dann in der Browserleiste am oberen Fensterrand als Fenstername erscheint. Weitere Elemente im head können sein: Skripte, Stylesheets, Meta–Angaben, Bezüge zu anderen Seiten, Basiseigenschaften. Im body wird alles notiert, was später in der Datei angezeigt werden soll. Das sind zum Beispiel Grafiken, Tabellen und Texte. Im einleitenden body–Tag werden zudem oft die Angaben zur Hintergrundfarbe des Dokuments, die Farben der Links sowie die Textfarben angegeben. Das Grundgerüst einer HTML–Datei sieht somit wie folgt aus:
<html> <head> ...Angaben im head... <head> <body> ...Angaben im body... <body> <html>Anstelle des body kann auch ein frameset–Element gesetzt werden. Framesets ordnen Rahmen auf dem Bildschirm an, in denen je eine einzelne HTML–Datei angezeigt wird. Framesets wurden früher verwendet, um den Bildschirm einzuteilen und sind heute dank der Verwendung von CSS veraltet.
Um den Quelltext übersichtlicher zu gestalten, können außerdem Anmerkungen in Form von Kommentaren in den Quelltext gesetzt werden. Sie werden innerhalb von <! und ––> geschrieben und beeinflussen die Gestaltung der Seite nicht. Der Browser überliest diese Angaben einfach und stellt sie nicht als Text oder Code dar.
Welche Element und Attribute es gibt und wie und wo sie verwendet werden, kann unter http://de.selfhtml.org/ nachgelesen werden.
Bei der Auswertung von HTML folgen die verbreiteten Browser nicht ganz dem durch das World Wide Web Konsortium (W3C) vorgegebenen Standard. Dies führt dazu, dass Webautoren ihre Dokumente in verschiedenen Browsern testen und gegebenenfalls anpassen müssen. Eine solche Anpassung an die Gegebenheiten auf der Leserseite kann aber häufig zu Fehlinterpretationen führen. Internet Explorer ist ein relativ fehlertoleranter Webbrowser, hat jedoch in CSS–Belangen einige Defizite. Browser wie Mozilla, Mozilla Firefox, Opera und Safari haben hier am wenigstens Probleme, tolerieren Codefehler jedoch weniger.
Für das Erstellen eines Webdokuments ist ein Texteditor empfehlenswert. Ohne tiefere HTML–Kenntnisse mag auch der Gebrauch eines sogenannten WYSIWYG–Editors wie zum Beispiel Dreamweaver vorteilhaft sein. Allerdings wird die strukturelle und logische Auszeichnung dabei vernachlässigt. Hinzu kommt, dass diese Editoren gelegentlich ungültiges HTML produzieren, was die Darstellung des Dokuments von der Fehlertoleranz des Webbrowsers abhängig macht. Deshalb sind solche Editoren besser nur als zusätzliches Hilfsmittel zu verwenden, um etwa das Grundgerüst von Webseiten zu erstellen. Die Feinarbeit sollte dann in einem Texteditor direkt am HTML–Code erfolgen.