Tabellen

Als ich beim Lernen von html zu den Tabellen kam dachte ich: uäääh ich nutz eh nie Tabellen, lern ich nich. Naja. Ich hab sie mir doch angeeignet, Tabellen in html sind nämlich nicht wie in Word nur zum normale Tabellen machen da, sondern eine wichtige Layout-hilfe. Eine Tabelle an sich zu erstellen ist nicht schwer:

<table border>
<tr><td></td><td></td></tr>
</table>

Ihr seht hier eine Tabelle mit einer Zeile und zwei Spalten:
<tr></tr> bedeutet das alles was darin steht eine Tabellenzeile ist. Hier hinein müsst ihr soviele <td></td> einfügen wie ihr Spalten haben wollt (das können beliebig viele, kann aber auch nur eine sein)

<table border>
<tr><td> blahblubb </td><td> blahblubb </td></tr>
</table>

führt also zu:

blahblubb blahblubb

Diese Tabelle hat, weil ich es ihr gesagt habe, einen Rand (durch das "border" im table-Tag).
Durch Änderung dieses Attributes könnt ihr der Tabelle auch breitere Ränder geben, oder garkeine:

<table border=0>
<tr><td> blahblubb </td><td> blahblubb </td></tr>
</table>

<table border=10>
<tr><td> blahblubb </td><td> blahblubb </td></tr>
</table>

führt zu:

blahblubb blahblubb

blahblubb blahblubb
Cellpadding und Cellspacing

Diese beiden Attribute führen dazu, das an bestimmten Bereichen der Tabelle Platz bleibt, entweder innerhalb der Zelle um die Schrift rum (cellpadding) oder "im Rand" (cellspacing)

<table border cellspacing="10">

blahblubb blahblubb

<table border cellpadding="10">

blahblubb blahblubb

Diese Angaben sind wichtig wenn ihr Eure Layouts in mehrere kleine Bilder aufteilt (wir sehen später, das ist eine sinnvolle Aktion). Die Bilder sollen ja nicht zwischendurch einen Abstand haben:

BildBild
BildBild

fügt ihr aber

cellpadding="0" cellspacing="0"

ein, sind alle Bilder nah aneinander:

BildBild
BildBild

Ausrichtung in Tabellen

Nun ist es gut möglich das ihr in eine Tabellenspalte nur ein Wort oder relativ wenig reinschreibt, und in die andere viel. Dann sieht das so aus:

Zwei Wörter Und hier schreib ich jetzt einen langen und sinnlosen Text rein, nur damit er lang ist und wir sehen können was die Tabelle damit anstellt.

Der Browser wird höchstwahrscheinlich die zwei Wörter in die Mitte der Spalte schreiben. Das ist natürlich nicht immer das was wir wollen. Deshalb gibt es dafür das "valign" Attribut. Valign heißt nichts anderes als "vertical align" also vertikale Ausrichtung. Wir können folgendes einsetzen:

<td valign=top>
<td valign=bottom>
<td valign=middle>

Das richtet den Inhalt der Zelle entsprechend oben, unten oder in der Mitte (was aber ja eigentlich schon voreingestellt ist) aus. Wenn wir viele Tabellen haben, oder beabsichtigen das Ganze öfter zu ändern, ist es sinnvoller dies über einen Style Sheet laufen zu lassen. Trotzdem kann dieses Attribut manchmal nützlich sein. Für die CSS Variante unsere Liste durchsehen ;D

Tabellenköpfe

Man kann auch explizit einen Tabellenkopf einrichten (dafür kann man dann zB im CSS andere Einstellungen vornehmen): man ersetzt das <td> durch ein <th>

<table border=0>
<tr><th> blahblubb </th><th> blahblubb </th></tr>
</table>

Hintergründe

Tabellen können auch Hintergründe haben. Entweder die ganze Tabelle oder nur bestimmte Zellen. Diese Hintergründe sind auch wieder nur beschränkt sinnvoll, man muss sich selber die Grenze ziehen wann man lieber css benutzen will.

Eine ganze Tabelle kann einen Hintergrund haben:

<table border bgcolor:"white">
<tr><th> blahblubb </th><th> blahblubb </th></tr>
</table>

blahblubb blahblubb

Oder auch ein Hintergrundbild:

<table border background="pfadzumbild.jpg">
<tr><th> blahblubb </th><th> blahblubb </th></tr>
</table>

blahblubb blahblubb

Oder eine Zelle eine Farbe, eine ein Bild:

<table border>
<tr><td background="pfadzumbild.jpg">blahblubb</td>
<td bgcolor="white">blahblubb</td></tr>
</table>

blahblubb blahblubb

Tabellenbreiten/höhen

Tabellen(-Zellen)breiten und Höhen können auf zwei verschieden Art und Weisen eingefügt werden:
durch eine Prozentangabe oder einen konkreten Pixelwert und zwar durch

<table height="100%" width="50%">
<table height="265" width="154">

Beim ersten Code seht ihr einen Prozentangabe. NIEMALS das Prozentzeichen vergessen, sonst denkt der Browser es wäre eine Pixelangabe. Und das wäre schon ein gravierender Unterschied ;D

Genauso könnt ihr mit Tabellenzellen verfahren. In der Regel sind allerdings die ZEILEN gleichhoch. Dh der Browser wird sie gleichhoch machen. Wie man Zellen auslässt, dazu kommen wir in der nächsten Lektion.

Ihr müsst immer alle Container in Tabellen schließen!! Der Internet Explorer ist da ein bisschen schlampig und akzeptiert nicht geschlossene Zellen-Tags (<td>), aber das macht sonst KEIN Browser!
Der IE ist auch der Einzige Browser der die Einstellungen für Schriften, Schriftgrößen, Schriftfarben etc aus der Body Einstellung in eine Tabelle übernimmt. Legt also in eurem CSS alles nochmal für die Tabelle an.