HTML-Tabellen
Mit den Listen haben wir bereits ein Beispiel für ein strukturiertes HTML-Element behandelt. Ein weitaus flexibleres strukturiertes Element ist die Tabelle. Die Möglichkeiten, HTML-Elemente mit einer Tabelle zu organisieren sind tatsächlich so vielfältig, dass die Tabelle ein Hauptwerkzeug für die Layoutgestaltung von Webseiten ist. Der größte Nachteil dieses Ansatzes besteht darin, dass derartige Webseiten nicht barrierefrei sind. D. h., das Layout der Seiten passt sich nicht automatisch an unterschiedliche Ausgabegeräte an und widersetzt sich der automatischen Auswertung durch Programme, da oftmals kein logischer Zusammenhang zwischen den Textinhalten mehr besteht. Leseprogramme für Blinde können diese Seiten z. B. häufig nicht sinnvoll interpretieren, sodass diese Nutzergruppe ausgeschlossen bleibt.
In Tabellen werden Daten zweidimensional mit Hilfe von Zeilen und Spalten dargestellt. Daneben besitzen Tabellen in der Regel eine Kopfzeile, in der nähere Angaben zur Bedeutung der Tabellenspalten stehen.
Eine Notentabelle könnte z. B. so aussehen:
Name Vorname Note Müller Peter 3,7 Meier Christine 2,3 Schmidt Torsten 1,7
Um diese Tabelle in HTML zu codieren ist zunächst einmal das
Tabellenelement <table>...</table> erforderlich:
<table></table>
Kopfzeileneinträge werden mit Hilfe einer
Tabellenzeile erstellt, die durch das Element <tr>...</tr>
(engl.: table row) ausgezeichnet wird. In die
Kopfzeileneinträge werden die Überschriften mit
dem Überschriftselement eingefügt:
<th>...</th> (engl.: table header).
Damit ergibt sich für unsere Beispieltabelle:
<table><tr><th>Name</th><th>Vorname</th><th>Note</th></tr></table>
Um Daten in die Tabelle einzufügen, wird wieder das Zeilenelement
verwendet. Die Spaltendaten werden dann allerdings mit dem
Datenelement <td>...</td>
(engl.: table data) hinzugefügt:
<table><tr><th>Name</th><th>Vorname</th><th>Note</th></tr><tr><td>Müller</td><td>Peter</td><td>3,7</td></tr><tr><td>Meier</td><td>Christine</td><td>2,3</td></tr><tr><td>Schmidt</td><td>Torsten</td><td>1,7</td></tr></table>
Aufgaben:
-
Kopieren Sie den Beispielcode in eine HTML-Datei und zeigen Sie diese an. Was Sie sehen, ist eine so genannte "blinde Tabelle", da die Tabelleneinträge nicht durch Gitternetzlinien voneinander getrennt werden. D. h. die HTML-Seite ist durch die Tabelleneinträge unsichtbar in verschiedene Bereiche aufgeteilt worden. Blinde Tabellen bilden die Grundlage für die Layoutgestaltung mit Tabellen sowie für mehrspaltigen Text.
-
Fügen Sie der Tabelle mit Hilfe des Attributs
borderim einleitenden Tag Gitternetzlinien hinzu:<table border="1">. Der Zahlenwert steht dabei für die Liniendicke. Wie sie sehen, sind die Kopfzeileneinträge per Voreinstellung zentriert ausgerichtet. Normale Einträge hingegen linksbündig. Dies lässt sich mit dem Attribut
alignsteuern. Dies hat - je nach Einsatzort - eine unterschiedliche Wirkung:<table>: Ganze Tabelle wird auf der HTML-Seite ausgerichtet<th oder tr>: Alle Einträge einer Zeile werden ausgerichtet<td>: Nur dieser Eintrag wird ausgerichtet
Platzieren Sie Ihre Tabelle zentriert auf der Seite. Richten Sie alle Einträge in der linken Spalte linksbündig aus. Alle Einträge in der mittleren Spalte zentriert und alle in der rechten Spalten rechtsbündig.
Die Größe der Tabelleneinträge lässt sich ebenfalls steuern. Dies geschieht mit Hilfe der Attribute
widthundheight. Auch hier ist die Wirkung vom Einsatzort abhängig:<table>: Breite der Tabelle mitwidthdefinieren. Z. B. 100% für die Seitenbreite.<th oder tr>: Zeilenhöhe mitheightfestlegen.<td>: Breite, der zu<td>gehörenden Spalte festlegen. Vereinbarung gilt für alle Zeilen.
Höhenangaben erfolgen in Pixel, Breiten können in Pixel und in Prozent angegeben werden. Weiteres hierzu im Abschnitt Breiten- und Höhenangaben.
-
Skalieren Sie ihre Tabelle auf die volle Fensterbreite.
-
Weisen Sie der linken und rechten Spalte jeweils eine Breite von 20% zu.
-
Geben Sie allen Tabellenzeilen, mit Ausnahme der dritten, eine Höhe von z. B. 50 Pixel, der dritten eine Höhe von z. B. 400 Pixel, sodass ihre Tabelle wie das Beispiel unten aussieht:

Das Beispiel verdeutlicht die früher praktizierte Herangehensweise, mit Hilfe einer Tabelle und Größenangaben eine Webseite in unterschiedliche Bereiche aufzuteilen. Eine typische Aufteilung sieht dabei so aus, dass um einen relativ großen zentralen Bereich, in dem die Hauptinformationen der Webseite angezeigt werden, mehrere kleinere Bereiche angeordnet werden, in denen Hilfsinformationen, wie z. B. Menüs für das Verzweigen zu anderen Seiten, angezeigt werden.
Hierfür werden häufig nicht alle Spalten benötigt. In der ersten Zeile der Tabelle könnte z. B. die Überschrift eines Webauftrittes stehen. In diesem Fall würde in der ersten Zeile eine einzelne Spalte ausreichen.
Die Anzahl der zu verwendenden Spalten in einer Zeile bzw. Zeilen in
einer Spalte wird mit Hilfe
der Attribute rowspan und colspan in dem
Zeilen- oder Spaltenelement festgelegt.
Lesen Sie hierzu den Abschnitt Zellen verbinden.
Aufgaben:
-
Löschen Sie die dritte Spalte ihrer Tabelle, in der die Noteneinträge stehen.
-
Fassen Sie die beiden verbleibenden Spalten der ersten und letzten Zeile zu einer Spalte zusammen. Löschen Sie die nun überflüssigen Tabelleneinträge in den beiden Zeilen, damit diese nicht zur Erstellung überzähliger Tabelleneinträge führen.
-
Verringern Sie die Höhe der letzten Zeile auf z. B. 20 Pixel. Schreiben Sie danach in die erste Zeile z. B. "Webauftritt von XY", in die erste Spalte der zweiten Zeile "Navigation" und in die letzte Zeile z. B. "Impressum", sodass Sie folgenden Aufbau der Tabelle erhalten:

-
Es ist durchaus möglich Tabellen in Tabellen zu verwenden. Benutzen sie dies, um dem Navigationsteil, in dem zur Zeit "Meier" steht, ein Menü hinzuzufügen. Ersetzen Sie hierfür den bestehenden Eintrag durch eine einspaltige Tabelle, die z. B. die Einträge "Arbeit", "Freizeit", "Familie", "Reisen" besitzt. Richten Sie die Einträge am oberen Rand der Tabellenzelle der äußeren Tabelle aus. Vertikales Ausrichten ermöglicht das Attribut valign.
-
Tabellenzellen können mit Farben und Grafiken hinterlegt werden. Hierdurch lassen sich vielfältige Gestaltungen umsetzen. Hinterlegen Sie die verschiedenen Bereiche der Beispielwebseite mit verschiedenen Farben und einer Grafik. Lesen Sie dafür den Abschnitt über Hintergrundfarben und Hintergrundbilder. Farben können Sie mit dem Farbauswähler auswählen. Als Grafik können Sie z. B. die Hintergrundgrafik von SelfHTML benutzen.
-
Deaktivieren Sie die Gitternetzlinien ihrer Tabelle und schauen Sie sich an, wie ihre Beispielseite mit einer blinden Tabelle aussieht. In dieser werden die einzelnen Tabellenzellen nun durch Lücken voneinander getrennt, wo vorher die Trennlinien waren. Die Breite dieser Lücken wird durch das Attribut
cellspacingin Pixel bestimmt. Lesen Sie hierzu den Abschnitt Zellenabstand und Zelleninnenabstand und definieren Sie danach einen Wert für dascellspacing, bei dem die Lücken verschwinden. -
Webauftritte bestehen zumeist aus mehr als einer Seite. Formen Sie daher ihren ersten Eintrag in der Navigationsspalte in einen Verweis auf die Seite
Arbeit.htmlum. Ersetzen Sie den Eintrag "Christine" durch den Eintrag "Startseite" und löschen Sie den überflüssigen Eintrag "Peter". Insgesamt sollten Sie jetzt etwas in der Art der Abbildung unten produziert haben:
Fertigen Sie eine Kopie mit dem Namen
Arbeit.htmlihrer derzeitigen Version der Webseite an. Ersetzen Sie in dieser Datei den Verweis "Arbeit" durch das fett gesetzte Wort Arbeit. Fett setzen können Sie mit dem HTML-Element<b>...</b>(engl.: bold).Ersetzen Sie den Eintrag "Startseite" durch einen passenden neuen Texteintrag im zentralen Bereich der Tabelle, der einen Hinweis darauf gibt, in welchem Teil des Webauftrittes der/die Besucher/in sich befindet.
Ersetzen Sie den Eintrag in der Tabellenzelle für das "Impressum" durch einen Verweis auf die Startseite, um einen Rücksprung in diese Seite zu ermöglichen.
Damit ergibt sich beispielsweise:

-
Wenn Sie möchten, können Sie den Vorgang für die übrigen Einträge "Freizeit.html", "Familie.html", "Reisen.html" oder - alternativ - für eine Zahl eigener Einträge wiederholen.
Die klassische Methode der Webseitenaufteilung führt zu einem starren Layout der Seite und einer Vermischung von Inhalt und Gestaltung. Sie wurde daher durch das Layouten mit Hilfe von Cascading Style Sheets (CSS) ersetzt. Dies ist das Thema des nächsten Übungsblattes.
Aufgabe: Gestalten Sie mit der klassischen Methode eine Webseite, deren Seitenaufteilung dem unten abgebildeten Beispiel gleicht:
