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