VSIS: Arbeitsgruppe Verteilte Systeme und Informationssysteme prInt: Das Praktikum Internet-Werkzeuge  Praktikum Internet-Werkzeuge   Fachbereich
  Aufgaben  Dokus  Links   Universität Hamburg

 XHTML-Kurzanleitung

 Übersicht

 Was ist eigentlich HTML?

XHTML heißt eXtensible HyperText Markup Language, also eine Sprache, um Hypertexte mit Markierungen zu versehen. (Genau genommen ist (X)HTML ein SGML-DocumentType.) HyperText ist einfach normaler Text (für Informatiker: Knoten), der Verbindungen (für Informatiker: Kanten) zu anderen Dokumenten hat. So entsteht ein richtiges Netz (für Informatiker: Graph) von Dokumenten, das sich World Wide Web nennt. Den Verbindungen kann man durch einfaches Auswählen nachgehen.

 Wie sieht HTML aus?

XHTML sieht zuerst mal wie ganz normaler Text aus. Und das ist es eigentlich auch. Nur dass dazwischen spezielle Zeichenketten auftauchen, die die XHTML-Befehle darstellen.

XHTML-Befehle werden auch als Tags bezeichnet. Tags fangen immer mit einem Kleinerzeichen (<) an, dann kommt der Name des Tags und zum Abschluss kommt ein Größerzeichen (>), also etwa so: <name>.
Es gibt Tags, die mitten im Text auftauchen (sie werden als leere Tags bezeichnet) und andere, die einen Teil des Textes umschließen. Dazu gibt es neben dem schon beschriebenen Opening Tag noch einen Closing Tag, der sich von ersterem nur durch einen Slash ( /) vor dem Namen unterscheidet: </name>. Leere Tags können entweder durch das entsprechende Closing Tag oder aber in einer verkürzten Schreibweise geschlossen werden. Dazu wird der Slash vor das schließende Größerzeichen geschrieben (<name />)
Außerdem gibt es noch Tags, die Attribute haben, mit denen man das Verhalten des Tags beeinflussen kann. Solche Attribute stehen zwischen dem Namen und dem Größerzeichen und werden durch Leerzeichen voneinander getrennt. Attribute haben zusätzlich noch einen Wert, dieser wird mit einem Gleichheitszeichen an das Attribut angehängt und durch in doppelte Anführungszeichen umschlossen: <name attrib="Wert">. Tags und Attribute werden in XHTML grundsätzlich klein geschrieben. Die Werte dürfen natürlich auch Großbuchstaben enthalten.
Ein ganz komplizierter Tag würde also so aussehen:

<name attrib1="Wert1" attr2="Wert2">
  Irgendwelcher Text
</name>

Da XHTML-Dateien XML-Dokumente sind, kann der verwendete Zeichensatz im XML-Prolog angegeben werden. Dies ist vor allem dann sinnvoll, wenn man Sonderzeichen verwendet. Unterstützt der gewählte Zeichensatz die im Text verwendeten Sonderzeichen nicht, dürfen diese auch nicht verwendet werden. Das heißt zunächst, dass keine Umlaute direkt in den Text geschrieben werden dürfen. Um dennoch Umlaute und Sonderzeichen im Text unterzubringen, werden so genannte Entities verwendet, die eine Umschreibung für Umlaute sind.
Achtung SGML-Freaks: Entities sind eigentlich SGML-Makros, können aber nicht als solche verwendet werden, da die Browser keinen SGML-Parser haben, sondern nur bestimmte vordefinierte Entities verstehen.

Entities fangen mit einem Ampersand (&) an, dann folgt der Name der Entity, abgeschlossen mit einem Semikolon (;). Der Ampersand selber hat dann natürlich auch eine eigene Entity; ebenso braucht man für das Größer- und das Kleinerzeichen auch eigene Entities.

ä: &auml; ö: &ouml; ü: &uuml; ß: &szlig;
Ä: &Auml; Ö: &Ouml; Ü: &Uuml;
&: &amp; <: &lt; >: &gt;

 Der prinzipielle Aufbau eines Dokuments

Bei XML und damit auch bei XHTML geht alles ganz hierarchisch zu. Wie jedes XML-Dokument fängt auch ein XHTML-Dokument mit einem XML-Prolog an. In diesem werden der Dokumententyp und die Version der Dokumentenbeschreibungssprache identifiziert; dies ist insbesondere deshalb wichtig, weil es mehrere HTML/XHTML-Versionen gibt. Das eigentliche Dokument wird durch <html>-Tags (Root-Element) umschlossen und gliedert sich dann in einen Header und einen Body. Im Root-Element muss immer der Namensraum des Dokumentes durch ein xmlns-Attribut deklariert werden. Der Header wird durch <head>-Tags begrenzt. Hier stehen allgemeine Informationen über das Dokument. Der Body ist der eigentliche Informationsträger, er wird durch <body>-Tags umschlossen und enthält all das, was später zur Anzeige kommen soll.

Ein typisches Dokument sollte also so aussehen:

XML-Prolog
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
Header-Elemente
</head>
<body>
Body-Elemente
</body>
</html>

 Was im Prolog steht

Jedes XML-Dokument beginnt mit einem XML-Prolog. In diesem werden Angaben zur Version, zum verwendeten Zeichensatz (optional) und zur Kodierung der Zeichen (optional) gemacht. Zusätzlich folgt noch die Angabe, welche Grammatik diesem Dokument zugrunde liegt.

<?xml version="1.0" charset="iso-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

 Was im Header steht

Im Header stehen Informationen über das Dokument. Es handelt sich vor allem um Meta-Informationen, die dem Browser etwas über das Dokument erzählen; wie es heißt, wer es gemacht hat und vieles mehr.

Das wichtigste Element im Header ist der Titel des Dokuments. Er wird mit <title> gekennzeichnet. Der Titel sollte ein Dokument auch außerhalb seines Kontextes kennzeichnen, er wird z.B. für die Anzeige in der History oder der Hotlist benutzt. Er sollte, allein stehend, eine Aussage über das Dokument geben, anhand der man das Dokument identifizieren, unter der man sich etwas vorstellen kann. Insbesondere sollte man Titel wie "Einführung", "Überblick" oder "Meine Homepage" meiden - das sind Überschriften!

Weitere wichtige Elemente sind das <link>- und das <meta>-Element, sie sollen hier aber nicht in aller Ausführlichkeit behandelt werden. Vielmehr sei die wichtigste Anwendung herausgegriffen, nämlich die Kennzeichnung des Urhebers eines Dokuments. Dazu erhält der <meta>-Tag ein Attribut (name) mit dem Wert "author", es kennzeichnet also, wer das Dokument "gemacht" hat. Der Autor wird dann in einem zusätzlichen Attribut content aufgeführt

Der Header ist mit <head>-Tags geklammert. Ein typischer Header könnte also so aussehen:

<head>
<title>Dokument-Titel</title>
<meta name="author" content="Max Mustermann">
</head>

 Was im Body steht

Im Body steht der Inhalt des Dokuments, also all das, was angezeigt werden soll. Dies kann zunächst mal ganz normaler Text sein. Dabei muss auf Zeilenumbrüche und ähnliches nicht geachtet werden, dafür sorgt nämlich der Browser oder WWW-Client. Und da jeder Browser anders funktioniert, andere Zeichensätze oder Fenstergrößen hat, sollte man auch tunlichst vermeiden, irgendwelche Annahmen darüber zu treffen.

Einfacher Text wird auf Dauer langweilig, sieht unattraktiv aus und vermittelt auch nicht das, was man vermitteln möchte. Deshalb gibt es in HTML zusätzliche Tags, mit denen man etwas über die Struktur und den Inhalt des Dokuments aussagen kann. Diese Struktur wird dann vom Browser in ein Layout übertragen, das aber von Browser zu Browser unterschiedlich sein kann. Man sollte beim Schreiben eines HTML-Dokuments also immer darauf achten, dass es von unterschiedlichen Programmen ganz unterschiedlich dargestellt werden kann und daher keine Annahmen darüber treffen.

HTML-Tags dienen also nur einer semantischen Gliederung des Dokuments und geben dem Browser Hinweise über den Inhalt, die dieser dann in eine seinem Benutzer angenehme Darstellung übersetzt.

 Überschriften

HTML stellt sechs verschiedene Levels von Überschriften zur Verfügung, die mit den Tags <h1> bis <h6> markiert werden. Ein mit einer Überschrift versehener Text sähe also so aus:

<h1>&Uuml;berschrift</h1>

 Abschnitte und Umbrüche

Ein einziger riesiger Text ist auch nicht so toll, deswegen lässt er sich in einzelne Abschnitte unterteilen. Dazu dient der <p>-Tag, der Abschnitte umfasst, so dass diese bei der Darstellung leicht voneinander abgesetzt werden.

<p>Ganz viel Text.</p>
<p>Noch mehr Text.</p>

Abschnitte werden i.A. durch einen Abstand voneinander getrennt. Ab und an kann es notwendig werden, eine neue Zeile anzufangen, ohne einen Abstand zu erzeugen; für diesen Zeilenumbruch dient der <br />-Tag.

Eine deutlichere Trennung mehrerer unabhängiger Teile eines Dokuments kann man durch das Einsetzen einer horizontalen Linie erreichen. Sie wird mit dem <hr />-Tag erzeugt.

Eine besondere Art des Abschnitts ist ein Zitat oder ein Beispiel. Hierzu dienen die <blockquote>-Tags. Zitate und Beispiele werden oft eingerückt dargestellt. Ein Beispiel für ein Zitat:

<p>Einfacher Text</p>
<blockquote>
  <p>Zitierter Text</p>
</blockquote>
<p>Weiterer Text</p>

 Listen

Manche Informationen lassen sich besser als eine Auflistung denn als fließender Text präsentieren. HTML bietet hierzu drei grundlegende Listentypen an. Der einfachste Typ ist die ungeordnete Liste, was jetzt aber nicht heißt, dass die Listenelemente wild durcheinander angezeigt werden; dies soll lediglich ausdrücken, dass die Liste keine definierte Abfolge darstellt. Eine solche Liste wird durch <ul>-Tags begrenzt, die einzelnen Listenelemente werden durch <li> umgeben:

<ul>
<li>Ein Eintrag</li>
<li>Noch ein Eintrag</li>
</ul>

Für eine definierte Abfolge, wie sie z.B. in einer Gebrauchsanweisung auftaucht, steht die geordnete Liste zu Verfügung. Der Browser sorgt dabei dafür, dass dies auch zum Ausdruck kommt (z.B. durch fortlaufende Nummern vor den Einträgen). Eine geordnete Liste funktioniert genau wie eine ungeordnete, nur ist jetzt <ol> statt <ul> zu verwenden.

Der dritte Typ unterscheidet sich von den vorherigen dadurch, dass ein Eintrag jetzt aus zwei Teilen besteht: einem Eintrag und einer zugehörigen Beschreibung. Eine solche Liste lässt sich als Glossar u.ä. verwenden. Das Schlüsselwort wird dabei durch <dt> eingeleitet, die zugehörige Erklärung durch <dd>:

<dl>
<dt>Ein Eintrag</dt>
<dd>und der zugehörige Text</dd>
<dt>Ein anderer Eintrag</dt>
<dd>und der dazugehörige Text</dd>
</dl>

 Tabellen

Mit den Tabellen in XHTML kann man natürlich Tabellen darstellen, klar. Leider werden sie jedoch sehr häufig gar nicht dafür eingesetzt, sondern vielmehr dafür, das Layout einer XHTML-Seite zu steuern. Dies ist aber bei Verwendung von CSS zur Layoutgestaltung nicht nötig und gilt als schlechter Stil. Eine Tabelle wird mit dem Tag <table> begonnen und mit </table> abgeschlossen. Dieses Tag hat eine Reihe von Attributen, auf die wir hier nicht vertiefend eingehen wollen. Als Beispiel soll lediglich das Attribut border dienen. Damit lässt sich die Strichbreite der Tabelle einstellen. Werden Tabellen zur Layout-Gestaltung missbraucht, wird dieses Attribut auf Null gesetzt, so dass die Tabelle nicht als Tabelle erscheint.

Die Tabelle wird dann aufgebaut aus Zeilen und Zellen (nicht etwa aus Spalten, wie man denken könnte; Zellen sind flexibler). Eine Zeile wird mit dem Tag <tr> begonnen und auch wieder mit </tr> abgeschlossen. In dieser Zeile werden dann Zellen erzeugt. Es gibt zwei Arten von Zellen, die normalen Zellen, die mit dem Tag <td>Text</td> für table data cell erzeugt werden, und die hervorgehobenen Zellen, die table header cell, die mit <th>Text</th> erzeugt werden. Auch diese Tags haben eine Reihe von Attributen.

Eine einfache Tabelle könnte so definiert sein:

<table border="2">
<tr><th>Name</th><th>Alter</th></tr>
<tr><td>Marko</td><td>28</td></tr>
</table>

Nähere Erläuterungen zur Verwendung von Tabellen findet Ihr in der prInt-Dokumentation HTML-Tabellen.

 Hervorhebungen und Stile

Natürlich sind in HTML auch Texthervorhebungen möglich, um die Struktur eines Textes herauszustellen oder Teile hervorzuheben. Ursprünglich wurden dazu meist direkte Textformatierungen eingesetzt, wie kursiver Text (<i>), fetter Text (<b>), unterstrichener Text (<u>) oder Schreibmaschinentext (<tt>). Heutzutage werden diese Formatierungen durch CSS ersetzt. Man verwendet dann Tags wie <em> (Hervorhebung) und <strong> (Betonung), deren konkrete Darstellung in CSS-Anweisungen festgelegt wird.

 Vorformatierter Text

Beim Übertragen fertiger ASCII-Dokumente nach HTML kommt es oft vor, dass man einen schön gesetzten Text wie z.B. eine Tabelle hat, die durch den automatischen Umbruch oder durch die proportionalen Zeichensätze zerstört würde. Für solche Fälle stehen die <pre>-Tags zur Verfügung, die einen Text in einem nichtproportionalen Zeichensatz darstellen und vorgegebene Zeilenumbrüche beachten:

<pre>Die erste Zeile
Die letzte Zeile</pre>

 Hyperlinks

Das interessanteste an Hypertext sind die Hyperlinks, also die Verbindungen zu anderen Dokumenten. Das Tag <a> erzeugt einen Link zu einer anderen Seite. Dieses Tag macht HTML HyperText-fähig. Dem Attribut href wird eine URL zugewiesen, welcher der Browser folgt, wenn der Text zwischen dem <a> und dem </a> Tag angeklickt wird. Es muss nicht unbedingt ein Text sein, mit dem ein Link verknüpft ist, dies können auch Bilder etc. sein. Ein Beispiellink zu einer anderen Seite könnte z.B. so aussehen:

<a href="http://www.uni-hamburg.de/">Uni-Hamburg</a>

 Images

Als "Image" können GIF- (Graphics Interchange Format / 1987 entwickelt von CompuServe), JPEG- (Joint Photographic Experts Group) oder PNG- (Portable Network Graphic) Dateien in die WWW-Seite eingebunden werden. Nähere Informationen (z.B. zu den einzelnen möglichen Optionen) sollte man sich aus einer aktuellen Dokumentation zu XHTML (im Netz verfügbar) besorgen. Die einfache Syntax sieht so aus:

<img src="ImageName" alt="eine textuelle Beschreibung" />

wobei ImageName der Dateiname oder die Adresse mit dem Dateinamen des Bildes ist.

 Kommentare

Kommentare in HTML werden zwischen <!-- und --> eingeschlossen.


Mi 12-16 Uhr Raum: B-201 und RZ Start: 05.04.2006
Eine Veranstaltung des Arbeitsbereichs Verteilte Systeme und Informationssysteme (VSIS)

Letzte Änderung : 06.04.2005 - 10:31
EMail: prInt06@vsis.informatik.uni-hamburg.de