Tabellen formatieren

Ein Beispiel

Folgende Tabelle wurde mit CSS formatiert

BEREICH BEITRÄGE
ALLGEMEIN 03
JAVASCRIPT 19
CSS 07
HTML 03

Und hier der Quelltext dazu

<table style="border-collapse:collapse; border-spacing:0;
              border:0; border-width:0; padding:0;
              padding:1px; width:200px; margin-left:auto; margin-right:auto;">
  <thead>
    <tr>
      <th style="border-style:solid; border-width:2px;
                 border-color:#ff0000; padding:1px;
                 background-color:#ffcccc; text-align:center;">BEREICH</th>
      <th style="border-style:solid; border-width:2px;
                 border-color:#ff0000; padding:1px;
                 background-color:#ffcccc; text-align:center;">BEITRÄGE</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="border-style:solid; border-width:1px;
                 border-color:#ff0000; padding:1px;
                 width:100px; text-indent:5px;">ALLGEMEIN</td>
      <td style="border-style:solid; border-width:1px;
                 border-color:#ff0000; padding:1px;
                 text-indent:50px;">03</td>
    </tr>
    <tr>
      <td style="border-style:solid; border-width:1px;
                 border-color:#ff0000; padding:1px;
                 width:100px; text-indent:5px;">JAVASCRIPT</td>
      <td style="border-style:solid; border-width:1px;
                 border-color:#ff0000; padding:1px;
                 text-indent:50px;">19</td>
    </tr>
    <tr>
      <td style="border-style:solid; border-width:1px;
                 border-color:#ff0000; padding:1px;
                 width:100px; text-indent:5px;">CSS</td>
      <td style="border-style:solid; border-width:1px;
                 border-color:#ff0000; padding:1px;
                 text-indent:50px;">07</td>
    </tr>
    <tr>
      <td style="border-style:solid; border-width:1px;
                 border-color:#ff0000; padding:1px;
                 width:100px; text-indent:5px;">HTML</td>
      <td style="border-style:solid; border-width:1px;
                 border-color:#ff0000; padding:1px;
                 text-indent:50px;">03</td>
    </tr>
  </tbody>
</table>

Wie Du siehst, ist es zur Gänze möglich, bei Tabellenformatierungen auf CSS zurückzugreifen. Lediglich Netscape kleiner als Version 6.0 kann diese Angaben größtenteils nicht interpretieren.

Achtung! Falls Dich das riesige Quelltext-Ungetüm abschreckt, dann sei unbesorgt: Mich schreckt es ebenfalls ab. Jetzt schauen wir uns mal an, wie angenehm der Quelltext schrumpft, wenn das CSS ausgelagert wird.

Folgende Tabelle wurde mit externem CSS formatiert

Das ganze läßt sich auch in einem style sheet im head oder extern formatieren und sieht dann so aus:

BEREICH BEITRÄGE
ALLGEMEIN 03
JAVASCRIPT 19
CSS 07
HTML 03

Optisch ist kein Unterschied zu erkennen, allerdings wird der Quelltext wesentlich schlanker und daher übersichtlicher und lädt deshalb auch schneller. Diese Vorgehensweise empfiehlt sich besonders, wenn mehrere Tabellen auf dieselbe Art formatiert werden.

Außerdem kann dann Netscape kleiner als Version 6 zumindest auch die Texteinrückung interpretieren, was er bei einer Direktformatierung nicht tut. Desweiteren kann es vorkommen, daß er sämtliche Formatierungen über den Haufen schmeißt, wenn er im HTML-Quelltext auf das style-Attribut trifft.

Und hier der Quelltext dazu

HTML-Quelltext

<table id="sampletable">
  <thead>
    <tr>
      <th class="norm">BEREICH</th>
      <th class="norm">BEITRÄGE</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td class="norm">ALLGEMEIN</td>
      <td class="zahl">03</td>
    </tr>
    <tr>
      <td class="norm">JAVASCRIPT</td>
      <td class="zahl">19</td>
    </tr>
    <tr>
      <td class="norm">CSS</td>
      <td class="zahl">07</td>
    </tr>
    <tr>
      <td class="norm">HTML</td>
      <td class="zahl">03</td>
    </tr>
  </tbody>
</table>

CSS-Quelltext

#sampletable {
  border-collapse:collapse;
  border-spacing:0;
  border:0;
  border-width:0;
  padding:1px;
  width:200px;
  margin:1em auto;
}

#sampletable th {
  border-style:solid;
  border-width:2px;
  border-color:#ff0000;
  padding:1px;
  background-color:#ffcccc;
  color:inherit;
  text-align:center;
}

#sampletable td.norm {
  border-style:solid;
  border-width:1px;
  border-color:#ff0000;
  padding:1px;
  width:100px;
  text-indent:5px;
}

#sampletable td.zahl {
  border-style:solid;
  border-width:1px;
  border-color:#ff0000;
  padding:1px;
  text-indent:50px;
}

Da es sich bei dieser Beispieltabelle nur um ein einzelnes Exemplar handelt, ist der CSS-Code im Verhältnis zum Tabellen-HTML doch noch relativ groß. Im Alltagsgebrauch aber, wenn dutzende oder hunderte von Elementen nur ein einziges Mal formatiert werden müssen, ist die relative Code-Ersparnis sehr viel größer.

Viel Spaß!
Jane & Kurt

Angelegt: Vor meiner Zeit
Letzte Bearbeitung: 2005/06/11 / 14:10:50