Grundlagen von HTML-Tabellen
Dieser Artikel führt Sie in die Grundlagen von HTML-Tabellen ein, darunter Zeilen, Zellen, Überschriften, wie Zellen mehrere Spalten und Zeilen überspannen und wie alle Zellen in einer Spalte für Stilzwecke zusammengefasst werden können.
| Voraussetzungen: | Grundkenntnisse in HTML, wie sie unter Grundlegende HTML-Syntax behandelt werden. |
|---|---|
| Lernziele: |
|
Was ist eine Tabelle?
Eine Tabelle ist eine strukturierte Anordnung von Daten, die aus Zeilen und Spalten besteht (tabellarische Daten). Eine Tabelle ermöglicht es Ihnen, schnell und einfach Werte nachzuschlagen, die eine Art Verbindung zwischen verschiedenen Datentypen anzeigen, zum Beispiel eine Person und ihr Alter oder ein Wochentag oder der Zeitplan für ein lokales Schwimmbad.


Tabellen werden in der menschlichen Gesellschaft sehr häufig verwendet, und das schon seit langer Zeit, wie durch dieses US-Census-Dokument von 1800 belegt:

Es ist daher kein Wunder, dass die Ersteller von HTML eine Möglichkeit bereitgestellt haben, um tabellarische Daten im Web zu strukturieren und darzustellen.
Wie funktioniert eine Tabelle?
Der Sinn einer Tabelle liegt in ihrer Strukturiertheit. Informationen werden leicht interpretiert, indem visuelle Assoziationen zwischen Reihen- und Spaltenüberschriften hergestellt werden. Schauen Sie sich zum Beispiel die Tabelle unten an und finden Sie einen Jupitermond mit 62 Monden. Sie können die Antwort finden, indem Sie die relevanten Reihen- und Spaltenüberschriften zuordnen.
Wenn HTML-Tabellen korrekt implementiert sind, werden sie gut von Barrierefreiheits-Tools wie Bildschirmlesegeräten gehandhabt, sodass eine erfolgreiche HTML-Tabelle die Erfahrung von sehenden und sehbehinderten Nutzern gleichermaßen verbessert.
Tabellengestaltung
Sie können sich auch das Live-Beispiel der Planeten-Daten auf GitHub ansehen! Ein Punkt, den Sie bemerken werden, ist, dass die Tabelle dort etwas lesbarer aussieht — das liegt daran, dass die Tabelle, die Sie oben auf dieser Seite sehen, minimal gestylt ist, während die GitHub-Version bedeutendere CSS-Stile angewendet hat.
Unterliegen Sie keinem Missverständnis; damit Tabellen im Web effektiv sind, müssen Sie einige Stilinformationen mit CSS bereitstellen, sowie eine gute solide Struktur mit HTML. In dieser Lektion konzentrieren wir uns auf den HTML-Teil; das Stylen von Tabellen werden Sie später in unserer Lektion Tabellen stylen kennenlernen.
Wir werden uns in diesem Modul nicht auf CSS konzentrieren, aber wir haben ein minimales CSS-Stylesheet bereitgestellt, das Sie verwenden können, um Ihre Tabellen lesbarer als das Standard-Layout ohne jegliche Stile zu machen. Sie können das Stylesheet hier finden, und Sie können auch eine HTML-Vorlage finden, die das Stylesheet anwendet — diese beiden zusammen bieten Ihnen einen guten Ausgangspunkt, um mit HTML-Tabellen zu experimentieren.
Wann sollten Sie HTML-Tabellen vermeiden?
HTML-Tabellen sollten für tabellarische Daten verwendet werden (Informationen, die sich leicht in Zeilen und Spalten darstellen lassen) — dafür sind sie ausgelegt. Leider wurden HTML-Tabellen in der Vergangenheit oft verwendet, um Webseiten zu gestalten, zum Beispiel eine Zeile, um einen Seitenkopf zu enthalten, eine Zeile für jede Inhalts-Spalte, eine Zeile für den Fußbereich, usw. Diese Technik wurde früher verwendet, weil die Unterstützung für CSS in den verschiedenen Browsern sehr begrenzt war. Moderne Browser haben eine solide CSS-Unterstützung, sodass tabellenbasierte Layouts nicht mehr benötigt werden. Tabellenlayouts sind jetzt extrem selten, aber Sie könnten sie immer noch in einigen Bereichen des Webs sehen.
Kurz gesagt, die Verwendung von Tabellen für Layouts statt CSS-Layouttechniken ist eine schlechte Idee. Die Hauptgründe dafür sind:
- Layout-Tabellen verringern die Zugänglichkeit für sehbehinderte Nutzer: Bildschirmleser, die von blinden Menschen verwendet werden, interpretieren die Tags, die in einer HTML-Seite existieren, und lesen die Inhalte dem Nutzer vor. Da Tabellen nicht das richtige Werkzeug für Layouts sind und das Markup komplexer ist als bei CSS-Layouttechniken, wird die Ausgabe der Bildschirmleser für ihre Benutzer verwirrend sein.
- Tabellen erzeugen Code-Suppe: Wie bereits erwähnt, beinhalten Tabellenlayouts im Allgemeinen komplexere Markup-Strukturen als geeignete Layouttechniken. Dies kann zu einem schwieriger zu schreibenden, zu wartenden und zu debuggenden Code führen.
- Tabellen sind nicht automatisch responsiv: Wenn Sie geeignete Layout-Container verwenden (wie
<header>,<section>,<article>oder<div>), entspricht ihre Breite standardmäßig 100% ihres Elternelements. Tabellen hingegen werden standardmäßig nach ihrem Inhalt dimensioniert, sodass zusätzliche Maßnahmen erforderlich sind, um ein effektives Tabellenlayout über eine Vielzahl von Geräten hinweg zu erreichen.
Ihre erste Tabelle erstellen
Wir haben genug über Tabellen-Theorie gesprochen, also lassen Sie uns nun ein praktisches Beispiel durchgehen und Sie dazu bringen, eine einfache Tabelle zu erstellen.
-
Machen Sie zuerst eine Kopie von blank-template.html und minimal-table.css in einem neuen Verzeichnis auf Ihrem lokalen Rechner. Die HTML-Vorlage enthält bereits ein
<link>-Element, um das CSS auf das HTML anzuwenden, sodass Sie sich darüber keine Gedanken machen müssen. -
Der Inhalt jeder Tabelle wird von diesen beiden Tags eingeschlossen:
<table></table>. Fügen Sie diese in den Body Ihres HTML-Dokuments ein. -
Der kleinste Container innerhalb einer Tabelle ist eine Tabellenzelle, die mit einem
<td>-Element erstellt wird ("td" steht für "table data"). Fügen Sie das Folgende innerhalb Ihrer Tabellentags ein:html<td>Hi, I'm your first cell.</td> -
Wenn wir eine Zeile mit vier Zellen haben wollen, müssen wir diese Tags dreimal kopieren. Aktualisieren Sie den Inhalt Ihrer Tabelle, damit er folgendermaßen aussieht:
html<td>Hi, I'm your first cell.</td> <td>I'm your second cell.</td> <td>I'm your third cell.</td> <td>I'm your fourth cell.</td>
Wie Sie sehen werden, werden die Zellen nicht untereinander platziert, sondern automatisch in einer Zeile nebeneinander ausgerichtet. Jedes <td>-Element erstellt eine einzelne Zelle und zusammen bilden sie die erste Zeile. Jede weitere Zelle verlängert die Zeile.
Damit diese Zeile nicht länger wird und um nachfolgende Zellen in einer zweiten Zeile zu platzieren, müssen wir das <tr>-Element (steht für 'table row') verwenden. Lassen Sie uns das nun genauer untersuchen.
-
Platzieren Sie die vier bereits erstellten Zellen innerhalb der
<tr>-Tags, wie folgt:html<tr> <td>Hi, I'm your first cell.</td> <td>I'm your second cell.</td> <td>I'm your third cell.</td> <td>I'm your fourth cell.</td> </tr> -
Nachdem Sie eine Zeile erstellt haben, versuchen Sie, eine oder zwei weitere zu erstellen — jede Zeile muss in ein weiteres
<tr>-Element eingeschlossen werden, wobei jede Zelle in einem<td>enthalten ist.
Klicken Sie hier, um die Lösung anzuzeigen
Ihr fertiges HTML sollte etwa so aussehen:
<table>
<tr>
<td>Hi, I'm your first cell.</td>
<td>I'm your second cell.</td>
<td>I'm your third cell.</td>
<td>I'm your fourth cell.</td>
</tr>
<tr>
<td>Second row, first cell.</td>
<td>Cell 2.</td>
<td>Cell 3.</td>
<td>Cell 4.</td>
</tr>
</table>
Sie können diesen Code auch auf GitHub unter simple-table.html (sehen Sie es auch live) finden.
Hinzufügen von Überschriften mit <th> Elementen
Nun wenden wir uns Tabellenüberschriften zu — speziellen Zellen, die am Anfang einer Zeile oder Spalte stehen und die Art der Daten definieren, die diese Zeile oder Spalte enthält (als Beispiel siehe die "Person" und "Alter" Zellen im ersten Beispiel, das in diesem Artikel gezeigt wurde). Um zu veranschaulichen, warum sie nützlich sind, werfen Sie einen Blick auf das folgende Tabellenbeispiel. Zunächst der Quellcode:
<table>
<tr>
<td> </td>
<td>Knocky</td>
<td>Flor</td>
<td>Ella</td>
<td>Juan</td>
</tr>
<tr>
<td>Breed</td>
<td>Jack Russell</td>
<td>Poodle</td>
<td>Streetdog</td>
<td>Cocker Spaniel</td>
</tr>
<tr>
<td>Age</td>
<td>16</td>
<td>9</td>
<td>10</td>
<td>5</td>
</tr>
<tr>
<td>Owner</td>
<td>Mother-in-law</td>
<td>Me</td>
<td>Me</td>
<td>Sister-in-law</td>
</tr>
<tr>
<td>Eating Habits</td>
<td>Eats everyone's leftovers</td>
<td>Nibbles at food</td>
<td>Hearty eater</td>
<td>Will eat till he explodes</td>
</tr>
</table>
Nun die tatsächlich gerenderte Tabelle:
Das Problem hier ist, dass, obwohl Sie irgendwie herausfinden können, was vor sich geht, es nicht so einfach ist, Daten zu vergleichen, wie es sein könnte. Wenn die Spalten- und Zeilenüberschriften in irgendeiner Weise hervorgehoben wären, wäre es viel besser.
Hinzufügen von Überschriften zur Hundetabelle
Jetzt möchten wir, dass Sie versuchen, das Hunde-Tabellenbeispiel zu verbessern, indem Sie einige Überschriften hinzufügen.
- Machen Sie zuerst eine lokale Kopie unserer Date
<header>,<section>,<article>, oder<div>), ihre Breite entspricht standardmäßig 100% ihres Elternelements. Tabellen hingegen werden standardmäßig nach ihrem Inhalt dimensioniert, sodass zusätzliche Maßnahmen erforderlich sind, um ein effektives Tabellenlayout über eine Vielzahl von Geräten hinweg zu erreichen.
Ihre erste Tabelle erstellen
Wir haben genug über Tabellen-Theorie gesprochen, also lassen Sie uns nun ein praktisches Beispiel durchgehen und Sie dazu bringen, eine einfache Tabelle zu erstellen.
-
Machen Sie zuallererst eine Kopie von blank-template.html und minimal-table.css in einem neuen Verzeichnis auf Ihrem lokalen Rechner. Die HTML-Vorlage enthält bereits ein
<link>-Element, um das CSS auf das HTML anzuwenden, sodass Sie sich darüber keine Gedanken machen müssen. -
Der Inhalt jeder Tabelle wird von diesen beiden Tags eingeschlossen:
<table></table>. Fügen Sie diese in den Body Ihres HTML-Dokuments ein. -
Der kleinste Container innerhalb einer Tabelle ist eine Tabellenzelle, die mit einem
<td>-Element erstellt wird ("td" steht für "table data"). Fügen Sie das Folgende innerhalb Ihrer Tabellentags ein:html<td>Hi, I'm your first cell.</td> -
Wenn wir eine Zeile mit vier Zellen haben wollen, müssen wir diese Tags dreimal kopieren. Aktualisieren Sie den Inhalt Ihrer Tabelle, damit er folgendermaßen aussieht:
html<td>Hi, I'm your first cell.</td> <td>I'm your second cell.</td> <td>I'm your third cell.</td> <td>I'm your fourth cell.</td>
Wie Sie sehen werden, werden die Zellen nicht untereinander platziert, sondern automatisch in einer Zeile nebeneinander ausgerichtet. Jedes <td>-Element erstellt eine einzelne Zelle und zusammen bilden sie die erste Zeile. Jede weitere Zelle verlängert die Zeile.
Damit diese Zeile nicht länger wird und um nachfolgende Zellen in einer zweiten Zeile zu platzieren, müssen wir das <tr>-Element ('tr' steht für 'table row') verwenden. Lassen Sie uns das nun genauer untersuchen.
-
Platzieren Sie die vier bereits erstellten Zellen innerhalb der
<tr>-Tags, wie folgt:html<tr> <td>Hi, I'm your first cell.</td> <td>I'm your second cell.</td> <td>I'm your third cell.</td> <td>I'm your fourth cell.</td> </tr> -
Nachdem Sie eine Zeile erstellt haben, versuchen Sie, eine oder zwei weitere zu erstellen — jede Zeile muss in ein weiteres
<tr>-Element eingeschlossen werden, wobei jede Zelle in einem<td>enthalten ist.
Klicken Sie hier, um die Lösung anzuzeigen
Ihr fertiges HTML sollte etwa so aussehen:
<table>
<tr>
<td>Hi, I'm your first cell.</td>
<td>I'm your second cell.</td>
<td>I'm your third cell.</td>
<td>I'm your fourth cell.</td>
</tr>
<tr>
<td>Second row, first cell.</td>
<td>Cell 2.</td>
<td>Cell 3.</td>
<td>Cell 4.</td>
</tr>
</table>
Sie können diesen Code auch auf GitHub unter simple-table.html (sehen Sie es auch live) finden.
Hinzufügen von Überschriften mit <th> Elementen
Nun wenden wir uns Tabellenüberschriften zu — speziellen Zellen, die am Anfang einer Zeile oder Spalte stehen und die Art der Daten definieren, die diese Zeile oder Spalte enthält (als Beispiel siehe die "Person" und "Alter" Zellen im ersten Beispiel, das in diesem Artikel gezeigt wurde). Um zu veranschaulichen, warum sie nützlich sind, werfen Sie einen Blick auf das folgende Tabellenbeispiel. Zunächst der Quellcode:
<table>
<tr>
<td> </td>
<td>Knocky</td>
<td>Flor</td>
<td>Ella</td>
<td>Juan</td>
</tr>
<tr>
<td>Breed</td>
<td>Jack Russell</td>
<td>Poodle</td>
<td>Streetdog</td>
<td>Cocker Spaniel</td>
</tr>
<tr>
<td>Age</td>
<td>16</td>
<td>9</td>
<td>10</td>
<td>5</td>
</tr>
<tr>
<td>Owner</td>
<td>Mother-in-law</td>
<td>Me</td>
<td>Me</td>
<td>Sister-in-law</td>
</tr>
<tr>
<td>Eating Habits</td>
<td>Eats everyone's leftovers</td>
<td>Nibbles at food</td>
<td>Hearty eater</td>
<td>Will eat till he explodes</td>
</tr>
</table>
Nun die tatsächlich gerenderte Tabelle:
Das Problem hier ist, dass, obwohl Sie irgendwie herausfinden können, was vor sich geht, es nicht so einfach ist, Daten zu vergleichen, wie es sein könnte. Wenn die Spalten- und Zeilenüberschriften in irgendeiner Weise hervorgehoben wären, wäre es viel besser.
Hinzufügen von Überschriften zur Hundetabelle
Jetzt möchten wir, dass Sie versuchen, das Hunde-Tabellenbeispiel zu verbessern, indem Sie einige Überschriften hinzufügen.
- Machen Sie zuerst eine lokale Kopie unserer dogs-table.html und minimal-table.css Dateien in einem neuen Verzeichnis auf Ihrem lokalen Rechner.
- Um die Tabellenüberschriften sowohl visuell als auch semantisch als Überschriften zu erkennen, können Sie das
<th>-Element ("th" steht für "table header") verwenden. Dies funktioniert genau wie ein<td>, außer dass es eine Überschrift und keine normale Zelle angibt. Gehen Sie in Ihr HTML und ändern Sie alle<td>-Elemente, die die Tabellenüberschriften umgeben, in<th>-Elemente. - Speichern Sie Ihr HTML und laden Sie es in einem Browser. Sie sollten sehen, dass die Überschriften jetzt wie Überschriften aussehen.
Klicken Sie hier, um die Lösung anzuzeigen
Ihr fertiges HTML sollte etwa so aussehen:
<table>
<tr>
<td> </td>
<th>Knocky</th>
<th>Flor</th>
<th>Ella</th>
<th>Juan</th>
</tr>
<tr>
<th>Breed</th>
<td>Jack Russell</td>
<td>Poodle</td>
<td>Streetdog</td>
<td>Cocker Spaniel</td>
</tr>
<tr>
<th>Age</th>
<td>16</td>
<td>9</td>
<td>10</td>
<td>5</td>
</tr>
<tr>
<th>Owner</th>
<td>Mother-in-law</td>
<td>Me</td>
<td>Me</td>
<td>Sister-in-law</td>
</tr>
<tr>
<th>Eating Habits</th>
<td>Eats everyone's leftovers</td>
<td>Nibbles at food</td>
<td>Hearty eater</td>
<td>Will eat till he explodes</td>
</tr>
</table>
Sie können diesen Code auch auf GitHub unter dogs-table-fixed.html (sehen Sie es auch live) finden.
Warum sind Überschriften nützlich?
Wir haben diese Frage bereits teilweise beantwortet — es ist einfacher, die Daten zu finden, nach denen Sie suchen, wenn die Überschriften klar hervorgehoben sind, und das Design sieht insgesamt besser aus.
Hinweis: Tabellenüberschriften haben eine gewisse Standardformatierung – sie sind fett und zentriert, auch wenn Sie keinen eigenen Stil zur Tabelle hinzufügen, um ihnen zu helfen, sich abzuheben.
Tabellenüberschriften haben auch einen zusätzlichen Vorteil — zusammen mit dem scope-Attribut (das wir im nächsten Artikel kennenlernen werden), ermöglichen sie es, Tabellen zugänglicher zu machen, indem Sie jede Überschrift mit allen Daten in derselben Zeile oder Spalte verbinden. Bildschirmlesegeräte sind dann in der Lage, eine ganze Zeile oder Spalte von Daten auf einmal vorzulesen, was ziemlich nützlich ist.
Zulassen, dass Zellen mehrere Zeilen und Spalten überspannen
Manchmal möchten wir, dass Zellen mehrere Zeilen oder Spalten umfassen. Nehmen Sie das folgende einfache Beispiel, das die Namen von gewöhnlichen Tieren zeigt. In einigen Fällen möchten wir die Namen der Männchen und Weibchen neben dem Tiernamen anzeigen. Manchmal möchten wir das nicht, und in solchen Fällen möchten wir, dass der Tiername die gesamte Tabelle überspannt.
Das anfängliche Markup sieht folgendermaßen aus:
<table>
<tr>
<th>Animals</th>
</tr>
<tr>
<th>Hippopotamus</th>
</tr>
<tr>
<th>Horse</th>
<td>Mare</td>
</tr>
<tr>
<td>Stallion</td>
</tr>
<tr>
<th>Crocodile</th>
</tr>
<tr>
<th>Chicken</th>
<td>Hen</td>
</tr>
<tr>
<td>Rooster</td>
</tr>
</table>
Aber die Ausgabe entspricht nicht ganz unseren Anforderungen:
Das Layout mit rowspan und colspan korrigieren
Wir brauchen eine Möglichkeit, "Tiere", "Flusspferd" und "Krokodil" über zwei Spalten zu spannen und "Pferd" und "Huhn" nach unten über zwei Zeilen zu spannen. Glücklicherweise haben Tabellenüberschriften und Zellen die Attribute colspan und rowspan, die uns genau das ermöglichen. Beide akzeptieren einen zahlenlosen Wert, der der Anzahl der überlappenden Zeilen oder Spalten entspricht. Zum Beispiel macht colspan="2" eine Zelle über zwei Spalten.
Lassen Sie uns colspan und rowspan verwenden, um diese Tabelle zu verbessern.
- Erstellen Sie zunächst eine lokale Kopie unserer animals-table.html und minimal-table.css Dateien in einem neuen Verzeichnis auf Ihrem lokalen Rechner. Das HTML enthält dasselbe Tierbeispiel, wie Sie es oben gesehen haben.
- Verwenden Sie als nächstes
colspan, um "Tiere", "Flusspferd" und "Krokodil" über zwei Spalten zu spannen. - Verwenden Sie abschließend
rowspan, um "Pferd" und "Huhn" über zwei Zeilen zu spannen. - Speichern und öffnen Sie Ihren Code in einem Browser, um die Verbesserung zu sehen.
Klicken Sie hier, um die Lösung anzuzeigen
Ihr fertiges HTML sollte etwa so aussehen:
<table>
<tr>
<th colspan="2">Animals</th>
</tr>
<tr>
<th colspan="2">Hippopotamus</th>
</tr>
<tr>
<th rowspan="2">Horse</th>
<td>Mare</td>
</tr>
<tr>
<td>Stallion</td>
</tr>
<tr>
<th colspan="2">Crocodile</th>
</tr>
<tr>
<th rowspan="2">Chicken</th>
<td>Hen</td>
</tr>
<tr>
<td>Rooster</td>
</tr>
</table>
Sie können diesen Code auch auf GitHub unter animals-table-fixed.html (sehen Sie es auch live) finden.
Gruppieren von Spalten mit <colgroup> und <col>
Es gibt eine Möglichkeit, ganze Tabellenspalten als eine einzelne Einheit zu behandeln, z. B. wenn Sie Stile auf eine Tabelle anwenden (die Sie später im Tabellenstilkurs kennen lernen). Wenn Sie mehr Erfahrung mit dem Erstellen von HTML-Tabellen sammeln, werden Sie feststellen, dass das Anwenden einer Hintergrundfarbe auf jede Zelle in einer einzelnen Spalte schwieriger ist als Sie vielleicht denken. Die <colgroup> und <col> Elemente bieten eine Lösung für dieses Problem.
Das <colgroup>-Element sollte als Kind der Tabelle unmittelbar nach dem öffnenden <table>-Element eingefügt werden. Innerhalb des <colgroup>-Elements können Sie ein oder mehrere <col>-Elemente einschließen, die eine Gruppe von Spalten darstellen. Das <col>-Element kann ein span-Attribut enthalten, das die Anzahl der Spalten in dieser Gruppe angibt. Es kann auch globale Attribute wie style (wenn Sie die Gruppe mit Inline-Styles ansprechen möchten) oder class (wenn Sie diese Gruppe mit CSS oder JavaScript über einen Klassennamen ansprechen möchten) enthalten. Die <col>-Elemente repräsentieren die Tabellenspalten ab dem Beginn der Spalten, zum Beispiel ab der linken Seite einer Tabelle, die in einer von links nach rechts lesenden Sprache wie Englisch geschrieben ist.
Lassen Sie uns ein Beispiel ansehen, um zu zeigen, was wir meinen. Die folgende Tabelle zeigt einen Schulstundenplan:
<h1>School language timetable</h1>
<table>
<colgroup>
<col span="2" />
<col class="column-background" />
<col class="column-fixed-width" />
<col class="column-background" />
<col class="column-background-border" />
<col span="2" class="column-fixed-width" />
</colgroup>
<tr>
<td> </td>
<th>Mon</th>
<th>Tues</th>
<th>Wed</th>
<th>Thurs</th>
<th>Fri</th>
<th>Sat</th>
<th>Sun</th>
</tr>
<tr>
<th>1st period</th>
<td>English</td>
<td> </td>
<td> </td>
<td>German</td>
<td>Dutch</td>
<td> </td>
<td> </td>
</tr>
<tr>
<th>2nd period</th>
<td>English</td>
<td>English</td>
<td> </td>
<td>German</td>
<td>Dutch</td>
<td> </td>
<td> </td>
</tr>
<tr>
<th>3rd period</th>
<td> </td>
<td>German</td>
<td> </td>
<td>German</td>
<td>Dutch</td>
<td> </td>
<td> </td>
</tr>
<tr>
<th>4th period</th>
<td> </td>
<td>English</td>
<td> </td>
<td>English</td>
<td>Dutch</td>
<td> </td>
<td> </td>
</tr>
</table>
In dieser Tabelle gibt es acht Spalten. Lassen Sie uns die <colgroup>- und <col>-Struktur genauer ansehen, um zu zeigen, wie sie sich auf sie auswirkt:
<colgroup>
<col span="2" />
<col class="column-background" />
<col class="column-fixed-width" />
<col class="column-background" />
<col class="column-background-border" />
<col span="2" class="column-fixed-width" />
</colgroup>
Beim Blick auf die <col>-Elemente:
- Das erste enthält
span="2", also repräsentiert es die erste und zweite Spalte von links in der Tabelle. Wir zielen mit keinem Stil auf diese Spalten ab, aber wir müssen sie einfügen, damit wir die nachfolgenden Spalten ansprechen können. - Das zweite und vierte haben kein
span-Attribut, also repräsentieren sie jeweils eine Spalte — in diesen Fällen die dritte und fünfte. Sie haben eineclassvoncolumn-backgroundzugewiesen. - Das dritte hat kein
span-Attribut und eineclassvoncolumn-fixed-widthzugewiesen. Es repräsentiert die vierte Spalte. - Das fünfte hat kein
span-Attribut und eineclassvoncolumn-background-borderzugewiesen. Es repräsentiert die sechste Spalte. - Das sechste enthält
span="2"und eineclassvoncolumn-fixed-width. Es repräsentiert die siebte und achte Spalte.
Wir haben den größten Teil des CSS für dieses Beispiel verborgen, aber wir zeigen Ihnen die Regeln, die Stile auf die <col>-Elemente mit den column-background, column-fixed-width und column-background-border Klassen anwenden:
.column-background {
background-color: #97db9a;
}
.column-fixed-width {
width: 40px;
}
.column-background-border {
background-color: #dcc48e;
border: 4px solid #c1437a;
}
- Die
<col>-Elemente mit einercolumn-backgroundKlasse haben eine feste Hintergrundfarbe. - Die
<col>-Elemente mit einercolumn-fixed-widthKlasse haben eine schmale feste Breite. - Das
<col>-Element mit einercolumn-background-borderKlasse hat eine feste Hintergrundfarbe und einen dicken Rahmen.
Sie müssen sich jetzt keine Gedanken darüber machen, wie das CSS funktioniert; Sie werden dies später ausführlich in unseren Grundlagen der CSS-Stilisierung Modulen lernen.
Sehen wir uns an, wie der obige Code gerendert wird:
Beachten Sie, wie die verschiedenen Spalten die in den Klassen angegebenen Stile erhalten.
Hinweis:
Auch wenn <colgroup> und <col> hauptsächlich die Stilgestaltung erleichtern, sind sie ein HTML-Feature, sodass wir sie hier abgedeckt haben, anstatt in unseren CSS-Modulen. Es ist auch fair zu sagen, dass sie ein eingeschränktes Feature sind — wie auf der <colgroup> Referenzseite gezeigt, kann nur eine begrenzte Auswahl an Stilen auf ein <col>-Element angewendet werden, und die meisten der historisch verfügbaren Einstellungen wurden deprecated (entfernt oder zur Entfernung markiert).
Interaktives Überprüfen der Tabellenkonzepte
Der folgende eingebettete Inhalt von ScrimbaMDN Lernpartner bietet eine interaktive Lektion, die die meisten der in diesem Artikel behandelten Techniken zusammenfasst. Schauen Sie es sich an für eine Wiederholung der Hauptpunkte und ein bisschen extra Praxis.
Zusammenfassung
Damit sind die Grundlagen von HTML-Tabellen abgeschlossen. Im nächsten Artikel werden wir einige weitere Funktionen betrachten, die verwendet werden können, um HTML-Tabellen für sehbehinderte Menschen zugänglicher zu machen.