Skupiny řádků a sloupců
Neřeknete-li jinak, je tabulka tvořena homogenní sítí buněk bez jakéhokoli
členění. Vy ovšem můžete říci jinak a rozdělit její řádky a/nebo sloupce do
skupin. Skupinám pak můžete přidělit speciální vzhled pomocí CSS, případně
atributem rules="groups" u prvku <table>
předepsat, že uvnitř tabulky mají být čarami odděleny jen celé skupiny.
Skupiny sloupců
K vymezení skupin sloupců slouží prvek <colgroup>.
Základní použití spočívá v tom, že jím „obalíte“ prvky
<col> definující jednotlivé sloupce.
Prvek <colgroup> má stejné atributy jako
<col>. jejich význam je
stejný a platí pro všechny sloupce skupiny, pokud je ovšem nepředefinujete na
úrovni jednotlivých sloupců. Stejně jako v ostatních situacích zde platí, že
lokální definice přebíjí tu, jež přichází „zvenčí“.
Například můžeme tento mechanismus využít v naší nákladově/ziskové tabulce k oddělení nadpisů a „těla“ řádků. Rozdělíme sloupce do dvou skupin – v jedné bude nadpis, ve druhé pak oba datové sloupce:
<table border="1" rules="groups">
<colgroup align="left">
<col />
</colgroup>
<colgroup align="right">
<col />
<col />
</colgroup>
<tr><th>Měsíc</th> <th>Výnosy</th><th>Náklady</th></tr>
<tr><th>Leden</th> <td>12360</td> <td>8619</td> </tr>
<tr><th>Únor</th> <td>9833</td> <td>6587</td> </tr>
<tr><th>Březen</th><td>14209</td> <td>10318</td> </tr>
<tr><th>Celkem</th><td>36402</td> <td>25542</td> </tr>
</table>
Formátovaná podoba pak vypadá takto:
Měsíc Výnosy Náklady Leden 12360 8619 Únor 9833 6587 Březen 14209 10318 Celkem 36402 25542
Jakmile v tabulce použijete <colgroup>, musíte
všechny sloupce zařadit do skupin. Proto ona nelogicky vypadající
skupina zahrnující jen první sloupec v naší tabulce.
Tělo prvku <colgoup> nicméně může být prázdné. V tom
případě hodnota atributu span určuje, kolik sloupců dotyčná
skupina obsahuje (jeho implicitní hodnotou je 1). Všechny mají stejné
vlastnosti určené ostatními atributy <colgroup>. Jakmile je
v těle <colspan> obsažen alespoň jeden
<col>, hodnota atributu span se ignoruje a
počet sloupců je určen počtem prvků <col> uvnitř skupiny.
První skupinu z předchozího příkladu by proto bylo možné zkrátit, aniž by se změnil význam:
<table border="1" rules="groups">
<colgroup align="left"></colgroup>
<colgroup align="right">
<col />
<col />
</colgroup>
...
Skupiny řádků
Podobně jako sloupce, i řádky lze shlukovat do skupin. Mechanismus se ale poněkud liší a navíc nejsou všechny skupiny stejné.
HTML zavádí pro shlukování řádků tři prvky: <thead> pro
záhlaví, <tfoot> pro zápatí a <tbody> pro
skupinu řádků v těle tabulky. Na rozdíl od skupin sloupců se nepíší předem, ale
přímo obalují (obsahují) odpovídající řádky. Obsahem každého z těchto prvků je
alespoň jeden řádek.
Každá tabulka může mít nanejvýš jeden <thead>, za ním
nanejvýš jeden <tfoot> a poté libovolný počet
<tbody>. Prvky musí být v uvedeném pořadí, čili patička
poněkud nelogicky ve zdrojovém textu předchází vlastní tělo tabulky. Klient by
ji ale při zobrazení samozřejmě měl přesunout na konec.
Když nadále rozvinu naši tabulku a prohlásím její první řádek za záhlaví a poslední za patičku, dopracuji se k následujícímu zdrojovému kódu:
<table border="1" rules="groups">
<colgroup align="left">
<col />
</colgroup>
<colgroup align="right">
<col />
<col />
</colgroup>
<thead>
<tr><th>Měsíc</th> <th>Výnosy</th><th>Náklady</th></tr>
</thead>
<tfoot>
<tr><th>Celkem</th><td>36402</td> <td>25542</td> </tr>
</tfoot>
<tbody>
<tr><th>Leden</th> <td>12360</td> <td>8619</td> </tr>
<tr><th>Únor</th> <td>9833</td> <td>6587</td> </tr>
<tr><th>Březen</th><td>14209</td> <td>10318</td> </tr>
</tbody>
</table>
a jeho podoba:
Měsíc Výnosy Náklady Celkem 36402 25542 Leden 12360 8619 Únor 9833 6587 Březen 14209 10318
Jakmile se rozhodnete používat skupiny řádků, je záhodno zařadit do nich všechny řádky tabulky.
zpět: tabulky v HTML