Die HyperText Markup Language (HTML)

Eine der wichtigsten Anwendungen des Internet ist das WWW: ein weltweites Netz untereinander verlinkter sogenannter HyperText-Dokumente. Solche Dokumente werden mit Hilfe der Dokumentenbeschreibungs-Sprache HTML (für HyperText Markup Language) definiert, auf Webservern abgelegt und von Webbrowsern mit Hilfe des HyperText Transfer Protokolls (HTTP) von solchen herunter geladen.

HTML-Dokumente sind Textdokumente mit sogenanntem Markup: zusätzlichen Anweisungen zur Strukturierung. Die Struktur eines HTML-Dokuments wird durch sogenannte Tags spezifiziert, die das Dokument hierarchisch in seine Bestandteile zerlegen. Die Struktur eines einfachen HTML-Dokuments ist wie folgt.

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Dies ist eine HTML-Seite</title>
  </head>
  <body>
     ...
  </body>
</html>

Die erste Zeile ist eine sogenannte Dokumenttyp-Definition, mit der die verwendete HTML-Version kenntlich gemacht werden kann. Bei Verwendung der aktuellen HMTL-Version genügt die hier gezeigt Angabe <!DOCTYPE html>.

Das eigentliche HTML-Dokument ist in die Tags <html> und </html> eingeschlossen. Tagnamen werden zwischen spitzen Klammern notiert. Das erste Tag heißt öffnendes und das letzte schließendes Tag, wobei schließende Tags stets den gleichen Namen haben wie zugehörige öffnende Tags, diesem aber ein Schrägstrich vorangestellt wird. Durch öffnende Tags begonnene Bereiche müssen in der Regel durch ein schließendes Tag beendet werden.1 Dabei muss die hierarchische Struktur des Dokumentes abgebildet werden.

Ein HMTL-Dokument hat zwei Bestandteile: einen Kopf (abgesetzt durch <head> und </head>) und einem Rumpf (abgesetzt durch <body> und </body>). Hier wäre es falsch, das schließende </head>-Tag nach dem öffnenden <body>-Tag zu notieren, da dies nicht der hierarchischen Struktur des Dokumentes entsprechen würde. Der Kopf enthält Meta-Informationen, wie hier den Zeichensatz und den Titel des Dokumentes, die nicht angezeigt werden.2 Der Rumpf enthält den eigentlichen Inhalt des Dokumentes, der im Browser angezeigt wird. Im folgenden behandeln wir Tags zur Strukturierung des Rumpfes eines HTML-Dokuments.

Überschriften werden durch Tags mit den Namen h1 bis h6 (h für heading) deklariert. h1 bezeichnet dabei eine Überschrift erster Ordnung, h2 eine zweiter Ordnung und so weiter. In Browsern werden Überschriften erster Ordnung in der Regel am größten und fett dargestellt, Überschriften zweiter Ordnung etwas kleiner und so weiter. Die Darstellung von Dokumentbestandteilen ist jedoch explizit nicht in HTML spezifiziert. HTML beschreibt nur die Struktur von Dokumenten. Wie ein Dokument dargestellt werden soll, kann jedoch gesondert mit CSS (für Cascading Style Sheets) beschrieben werden, wie wir später noch sehen werden.

Absätze werden durch Tags mit dem Namen p (für paragraph) begrenzt. In Browsern werden Absätze in der Regel abgesetzt notiert und zwar unabhängig davon, wie sie in der HTML-Datei selbst formatiert beziehungsweise umgebrochen sind. Zur Anzeige eines HTML-Dokumentes im Browser ist nur die durch Tags deklarierte Struktur relevant nicht jedoch die Formatierung anhand von Zeilenumbrüchen in der HTML-Datei selbst. Bereiche, die genauso wie im Quelltext der HTML-Datei umgebrochen werden sollen, können zwischen Tags mit dem Namen pre (für pre-formatted text) deklariert werden. Dies ist zum Beispiel nützlich, um Programmtext in HTML-Dokumenten anzuzeigen.

Die wichtigsten Bestandteile von HTML-Dokumenten im Vergleich zu gewöhnlichen Dokumenten sind Verknüpfungen zu anderen Dokumenten. Diese werden durch Tags mit dem Namen a (für anchor) deklariert. Anders als bei den bisher vorgestellten Tags, bestehen Verknüpfungen aus einem angezeigten Teil (dem Verknüpfungstext) und einem nicht angezeigten Teil (dem Verknüpfungßziel). Der Verknüpfungstext wird wie gewohnt zwischen den Tags geschrieben. Das Verknüpfungsziel wird als sogenanntes Attribut des öffnenden Tags mit dem Namen href (für Hyper Reference) notiert. Zum Beispiel Beschreibt <a href="http://www.uni-kiel.de">Uni Kiel</a> eine Verknüpfung mit dem Text Uni Kiel und dem Ziel http://www.uni-kiel.de. Verknüpfungsziele werden also durch ihren URI spezifiziert. Statt einen vollständigen URI als Verknüpfungsziel anzugeben, kann der Domainname auch weggelassen werden, um ein Dokument der selben Domain zu verlinken. Analog zu Dateisystemen kann auch ein relativer Pfad angegeben werden, der dann ausgehend vom Verzeichnis des aktuellen Dokumentes interpretiert wird.

Tags mit dem Namen a werden nicht nur für Verknüpfungen sondern auch zur Markierung von Bestandteilen des Dokuments verwendet, auf die durch Angabe des Anker-Namens nach # explizit verlinkt werden kann. Mit <a name="Hauptteil">...</a> wird ein sogenannter Anker zu dem umfassten Bestandteil des Dokuments deklariert. Wikipedia deklariert Anker für die Bestandteile aller Dokumente. Wir können also zum Beispiel durch <a href="http://de.wikipedia.org/wiki/Hypertext_Markup_Language#HTML-Struktur">HTML-Struktur</a> direkt auf den Abschnitt “HTML-Struktur” des Wikipedia-Eintrags zu HTML verlinken. In Browsern werden Verknüpfungen in der Regel in einer anderen Farbe und unterstrichen dargestellt um sie von normalem Text abzusetzen. Obwohl CSS es erlaubt die Darstellung nach Belieben anzupassen, sollte mit solchen, von vielen internalisierten, Konventionen nicht (oder nur aus sehr guten Gründen) gebrochen werden.

Bilder können in HTML-Dokumente eingebunden werden, indem ihr URI als Attribut src eines Tags mit dem Namen img angegeben wird. Zum Beispiel können wir durch <img src="http://www.uni-kiel.de/home/grafik/kopf-cau-block.gif"> das Logo der Uni-Kiel in ein HTML-Dokument einbinden.3 Da Bei Bildern kein eigentlicher Inhalt notiert wird, kann das schließende Tag entfallen. Alternativ können wir auch durch einen angehängten Schrägstrich wie in <img src="..." /> anzeigen, dass das gerade geöffnete Tag direkt wieder geschlossen wird.

Aufzählungslisten werden in HTML durch Tags mit den Namen ol (für ordered list) beziehungsweise ul (für unordered list) deklariert. Geordnete Listen werden durchnummeriert während in ungeordneten Listen die Einträge durch ein sogenanntes Bullet (zum Beispiel einen kleinen Kreis) kenntlich gemacht werden. Die Einträge selbst werden zwischen Tags mit dem Namen li (für list item) notiert. Zum Beispiel wird der folgende HTML-Code zur Deklaration einer drei-elementigen ungeordneten Liste

<ul>
  <li>erster Eintrag</li>
  <li>zweiter Eintrag</li>
  <li>dritter Eintrag</li>
</ul>

im Browser wie folgt dargestellt:

  • erster Eintrag
  • zweiter Eintrag
  • dritter Eintrag

Tabellen werden durch Tags mit dem Namen table deklariert. Sie bestehen aus Zeilen, die zwischen tr (für table row) geschrieben werden und wiederum Einträge enthalten, die durch td (für table data) kenntlich gemacht werden. Statt td kann auch th (für table header) verwendet werden, um den Eintrag als Überschrift zu kennzeichnen. Zum Beispiel könnte die folgende Tabelle

<table>
  <tr>
    <th>Vorname</th>
    <th>Nachname</th>
  <tr>
  <tr>
    <td>Sebastian</td>
    <td>Fischer</td>
  </tr>
  <tr>
    <td>Frank</td>
    <td>Huch</td>
  </tr>
  <tr>
    <td>Kai</td>
    <td>Wollweber</td>
  </tr>
</table>

im Browser wie folgt dargestellt werden:

VornameNachname
SebastianFischer
FrankHuch
KaiWollweber

Die genaue Formatierung kann durch CSS beeinflusst werden.

Cascading Style Sheets (CSS)

Bei der Deklaration von HTML-Dokumenten wird zwischen deren Struktur (die in HMTL spezifiziert wird) und deren Formatierung unterschieden. Letztere wird in der Formatierungs-Sprache CSS (Cascading Style Sheets) deklariert. Style Sheets werden im Kopf einer HTML-Datei definiert und können auch in gesonderte Dateien ausgelagert werden um sie in mehreren HTML-Dateien wiederzuverwenden. Im folgenden werden beide Varianten:kumentiert.

<html>
  <head>
    <link rel="stylesheet" type="text/css" href="format.css">
    <style type="text/css">
      ...
    </style>
  <head>
  <body>
    ...
  </body>
<html>

Hier werden zunächst mit Hilfe eines link-Tags ein externes Style Sheet format.css eingebunden und dann zwischen Tags mit dem Namen style weitere Formatierungsangaben gemacht.

Die Formatierungsangaben selbst haben das Format

Selektor {
  Eigenschaft1: Wert1;
  Eigenschaft2: Wert2;
  ...
}

wobei durch Selektor ein oder mehrer Bestandteile eines HTML-Dokumentes ausgewählt werden können, die dann entsprechend der in geschweifte Klammern eingeschlossenen Formatierungsanweisungen dargestellt werden.

Zum Beispiel wird durch die folgende Angabe

h1 {
  font-style: italics;
}

spezifiziert, dass Überschriften erster Ordnung kursiv dargestellt werden sollen. Es können auch mehrer Selektoren durch Kommata getrennt angegeben werden:

h1, h2, h3 {
  font-style: italics;
}

Hier werden Überschriften erster bis dritter Ordnung kursiv dargestellt.

Selektoren können auch hierarchisch strukturiert werden. Zum Beispiel bezieht sich der Selektor p ul auf alle ungeordneten Listen, die innerhalb von Absätzen stehen. Um zu kennzeichnen, dass nur solche Listen, die direkt innerhalb von Absätzen stehen, selektiert werden sollen, können wir p>ul als Selektor verwenden. Um den Unterschied der beiden Selektoren zu verdeutlichen betrachten wir den folgenden Absatz einer möglichen HTML-Datei, der geschachtelte ungeordnete Listen enhält.

<p>
  <ul>
    <li>
      <ul>
        <li>A.1</li>
        <li>A.2</li>
      </ul>
    </li>
    <li>B</li>
  </ul>
</p>

Der Selektor p ul selektiert hier beide ungeordneten Listen, während der Selektor p>ul nur die äußere selektiert, die direkt unterhalt des Absatzes steht, nicht aber die innere, die innerhalb eines Listeneintrags steht.

Nütliche Angaben zur Formatierung können Sie dem CSS-Kapitel der Seite SELFHMTL entnehmen. Nützlich sind zum Beispiel Angaben zu Rahmen in Tabellen:

table {
  border-top: thin solid;
}

table, table th {
  border-bottom: thin solid;
}

  1. Eine Ausnahme dieser Regel ist das gezeigte <meta>-Tag zur Angabe des Zeichensatzes. ↩︎

  2. Der Titel einer HTML-Seite wird von gängigen Browsern in der Regel in der Titelzeile des Browserfensters angezeigt, aber nicht im angezeigten Dokument selbst. ↩︎

  3. Bei der Anzeige fremder möglicherweise geschützter Bilder ist auf Grund von Copyright-Bestimmungen Vorsicht geboten. Bilder aus der Wikipedia dürfen unter bestimmten Vorraussetzungen verwendet werden. Bei Fragen konsultieren Sie bitte Ihren Anwalt. ↩︎