Tabellen

Verwendung von Tabellen

Oft werden Tabellen da eingesetzt wo man sie gar nicht vermuten würde. Sie dienen oft als Makierungen und rücken den Text in die rchtige Position.
Wieso sehen wir "nie" diese Tabellen? Das liegt daran das die Tabellen unsichtbar gemacht werden. D.h. die Umrandung wird weggemacht und nur der Inhalt (Schrift, Bilder, etc.) ist sichtbar.


Struktur
Tabellen werden immer mit
<table>
eingeleitet. Als nächster Schritt folgt die Zeilenbennennung die man direkt nach <table> setzt. Diese sieht folgendermaßen aus:
<tr>
Um die Übersicht zu behalten macht man nach <table> ein Absatz und führt dann mit <tr> weiter. So weit wir bisher sind kann keine Tabelle entstehen, da wir ja nur bisher wissen, dass es eine Tabelle sein soll mit 1 Zeile aber 0 Spalten. Das heißt, dass keine Tabelle so exestieren kann. Nun dann fügen wir eine Spalte ein. Dies geht mit dem Befehl:
<td>
Wie schon oben genannt wird der Übersicht halber ein Absatz eingefügt, sodass man den Quellcode immer noch entziffern kann.
Jetzt kommt ein sehr wichtiger Teil. Wie bei allen Tags werden diese auch abgeschlossen! Das heißt wenn man mit der Zeile fertig ist oder mit der Spalte muß abgeschlossen werden. Das wird per
</td>
</tr>
gemacht. Wenn Du mit der Tabelle fertig bist, mußt du diese auch abschließen. Ich mache das jetzt extra eine Zeile darunter, weil es das letzte einer Tabelle ist! Also demenstprechend:
</table>
Der hauptsächliche Text kommt IMMER zwischen den
<td>HIER KOMMT DER TEXT HIN UND NUR HIER!!!</td>
Jetzt machen wir ein kleines Beispiel für eine einfache Tabelle.

<html>
<head>
<title>Meine erste Tabelle</title>
</head>
<body>
<table>
<tr>
<td> Hier ist die erste Spalte in der ersten Zeile!</td>
<td> Hier ist die zweite Spalte in der ersten Zeile!</td>
</tr>
<tr>
<td> Hier ist die erste Spalte in der zweiten Zeile!</td>
<td> Hier ist die zweite Spalte in der zweiten Zeile!</td>
</tr>
</table>
</body>
</html>

Wie wir in dem Beispiel sehen können, können wir in der Zeilenteilung mehrere Spalten einfügen. Es ist auch möglich in den Spalten noch einmal seperat eine frische Tabelle zu machen. Dies eignet sich hervoragend für Navigationen oder andere Sachen. Dazu auch ein Beispiel:

<html>
<head>
<title>Eine Tabelle in einer Tabelle</title>
</head>
<body>
<table>
<tr>
<td>
<table>
<tr>
<td>Das funktioniert</td>
<td>Spitze!</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>Hier ist die erste Spalte in der zweiten Zeile!</td>
</tr>
</table>
</body>
</html>

Auch wenn kein Inhalt im <td></td> steht wird dieser Teil trotzdem hingeschrieben. Es wird dazwischen meist ein &nbsp; (Leerzeichen) eingefügt um ein "unsichtbaren" Inhalt einzufügen.


colspan & rowspan
Jetzt kommen wir zu einem sehr wichtigen Punkt bei Tabellen. Es ist für den Anfang sehr schwer zu verstehen, aber wird nach dem zweiten Mal sehr einfach!

Die Rede ist von colspan und rowspan. Sie werden in dem <td>-Tag geschrieben und haben folgende Bedeutung:

colspan = verbindet 2 Zeilen miteinander!
Beispiel:

<html>
<head>
</head>
<body>
<table border="1">
<tr>
<td colspan="2" width="300"><div align="center">Beispiel für colspan!</div></td>
</tr>
<tr>
<td><div align="center">Spalte 1</div></td>
<td><div align="center">Spalte 2</div></td>
</tr>
</table>
</body>
</html>

In colspan wird <td> direkt nach dem definieren des colspan geschrieben. D.h. im zweiten <tr>-Bereich.


rowspan = verbindet 2 Spalten miteinander!
Beispiel:

<html>
<head>
</head>
<body>
<table border="1">
<tr>
<td rowspan="2" width="300"><div align="center">Beispiel für rowspan!</div></td>
<td width="200"><div align="center">Spalte 2</div></td>
</tr>
<tr>
<td width="200"><div align="center">Auch spalte 2</div></td>
</tr>
</table>
</body>
</html>

In rowspan wird <td> im selben <tr>-Bereich geschrieben indem der rowspan-Tag definiert worden ist.


<th>
Dieser Tag ersezt den <td>-Tag und bewirkt, dass der geschrieben Text zentriert und fett geschrieben wird.
Dies wird oft bei Tabellenüberschriften genutzt. (ähnelt dem h1, h2, ...)


Thead, Tfoot, Tbody
Diese Befehle sind sogennante Einteilungen. Wie bei Word bekannt gibt es eine Kopfzeile und eine Fußzeile, sowie der Hauptteil. Diese 3 Befehle spiegeln genau das wieder. Es wird im unteren Beispiel deutlich, dass zuerst thead, dann tfoot und erst zum Schluß tbody geschrieben wird, aber vom Browser wird es wiefolgt ausgegeben: thead, tbody, tfoot.

<html>
<head>
<title>Thead, Tfoot, Tbody</title>
</head>
</body>
<table border="1" rules="groups">
<thead>
<tr>
<th>Beispiel 1</th>
<th>Beispiel 2</th>
<th>Beispiel 3</th>
</tr>
</thead>
<tfoot>
<tr>
<td><i>xxx:<br>77777</i></td>
<td><i>yyy:<br>88888</i></td>
<td><i>zzz:<br>99999</i></td>
</tr>
</tfoot>
<tbody>
<tr>
<td>1</td>
<td>1.1</td>
<td>1.2</td>
</tr><tr>
<td>2</td>
<td>2.1</td>
<td>2.2</td>
</tr><tr>
<td>3</td>
<td>3.1</td>
<td>3.2</td>
</tr>
</tbody>
</table>
</body>
</html>


caption-side (Ausrichtung der Tabellenüberschrift)
Mit caption kann man einer Tabelle eine Überschrift geben. Man könnte dies mit fieldset vergleichen


Ein Beispiel dazu sähe so aus:

<html><head><title>caption-side</title>
</head><body bgcolor="FFFFFF" text="#000000">
<table border="1">
<caption style="caption-side:bottom">Beispiel</caption>
<tr>
<th>1.1</th><th>1.2</th><th>1.3</th>
</tr><tr>
<td>2.1</td><td>2.2</td><td>2.3</td>
</tr><tr>
<td>3.1</td><td>3.2</td><td>3.3</td>
</tr></table>
</body></html>

Ich denke, an dem Beispiel wäre alles geklärt. Es wird direkt nach dem Einleitung der Tabelle (<border>) per CSS angewandt. Man kann anstadt "bottom" top, middle left und right schreiben und somit die Ausrichtung des Textes bestimmen.


Größenangaben
Du kannst einer Tabelle eine bestimmte Größe geben oder eine die sich nach der größe des Brwosers richtet. Das erstgenannte wird mit
<td width="300" height="400">
gemacht. Dies hat den Vorteil, dass man sein Style direkt designen kann, ohne auf Verändeungen zu achten.
Für eine angleichende Größe der Tabelle am Browser wird
<td width="45%" height="70%">
genutzt. Dies hat jedoch den Nachteil das man auch auf die Veränderungen gefasst sein muß. Deshalb empfehle ich immer Pixelangaben zu machen.

Feste Größe bei Tabellen
Wenn ihr eine Tabelle haben wollt mit einer festen Größe, die trotz eines zu langen Textes die feste Größe beibehält, müßt ihr das hier in den <body>Tag schreiben:
style="table-layout:fixed"
Ein Beispiel wäre dann so:

<html><head><title>table-layout</title>
</head><body bgcolor="FFFFFF" text="#000000">

<table border="1" style="table-layout:fixed">
<colgroup span="3" style=""></colgroup>
<tr>
<td style="width:100px">1234567890123456789012345678901234567890 12345678901234567890 </td>
<td style="width:200px">1234567890123456789012345678901234567890 12345678901234567890 </td>
<td style="width:300px">1234567890123456789012345678901234567890 12345678901234567890 </td>
</tr>
</table>

</body></html>


Ausrichtung

Es gibt zwei verschiedene Attribute für die Ausrichtung von Tabellen und/oder Tabelleninhalte (Zelleninhalte):

1.) vertikale oder senkrechte Ausrichtung

valign="top" Der Text wird nach oben gesetzt
valign="middle" Der Text wird von der Höhe her Zentriert angezeigt (Standart)
valign="bottom" Der Text wird nach unten gesetzt

2.) horizontale oder waagerechte Ausrichtung

align="left" Der Text wird linksbündig angezeigt(Standart)
align="center" Der Text wird zentriert angezeigt
align="right" Der Text wird rechtsbündig angezeigt

Table-Tags

So jetzt zu den Tags die in <table> kommen:

<table bordercolor="#000000">
//Definierung der Farbe der Rennlinie der Tabelle.
<table bordercolordark="#******">
//Dunkle Randfarbe
<table bordercolorlight="#******">
//Helle Randfarbe
<table border="0">
//Definierung der Dicke der Linien. Eine der wichtigsten Befehle!!!( Bei dem Wert 0 sagt man auch blinde Tabelle dazu)
<table cellspacing="2">
//Definierung des Abstandes von den einzelnen Spalten und Tabellen.
<table cellpadding="1">
//Definierung des Innenabstandes von Borderspacing.

Definitionen von Tabellenhintergünden
Jetzt gibt es in Tabellen noch ein paar kleine Definierungscodes für die Hintergründe. Sie können in <td>, <table> oder <tr> eingesetzt werden.

<td bgcolor="#000000"> Definierung der Hintergundfarbe
<td background="./bild.gif"> Definierung eines Hintergrundbildes

Achtung!!! Wenn du <table background="bild.jpg"> machst wird es von NS anders angezeigt wie von dem IE.