V tejto časti HTML tutoriálu si podrobnejšie prejdeme možnosti tvorby tabuliek.
Ako sme už načrtli v úvodnej časti HTML tutoriálu, základné elementy pre tvorbu tabuliek zastrešujú tieto tagy:
V ukážke nižšie vidíme zdrojový kód pre základnú štruktúru HTML tabuľky.
<table border="1">
<tr>
<td>riadok 1, bunka 1</td>
<td>riadok 1, bunka 2</td>
</tr>
<tr>
<td>riadok 2, bunka 1</td>
<td>riadok 2, bunka 2</td>
</tr>
</table>
K základným operáciám štruktúrovania tabuliek patrí používanie atribútov pre spájanie riadkov tabuľky, spájanie stĺpcov a nastavenie vizuálnych vlastností tabuľky (okrajov a zarovnania). Používame na to tieto tagy:
Na ukážke HTML tabuľky nižšie vidíme, ako a správajú jednotlivé atribúty tabuľky.
<table border="2" cellspacing="10" cellpadding="7" width="75%">
<tr>
<td>riadok 1, bunka 1</td>
<td>riadok 1, bunka 2</td>
</tr>
<tr>
<td colspan="2">riadok 2, bunka 1 aj bunka 2 spolu</td>
</tr>
<tr>
<td>riadok 3, bunka 1</td>
<td rowspan="2">riadok 3 aj riadok 4 spolu, bunka 2</td>
</tr>
<tr>
<td>riadok 4, bunka 1</td>
</tr>
</table>
V tabuľke sa zvyčajne nachádzajú dva typy buniek: bunky obsahujúce názvy stĺpcov a bunky obsahujúce dáta. Na oddelenie názvov stĺpcov od dát sa zvykne tabuľka (resp. bunky) rozdeliť do oblastí:
thead ako hlavička tabuľky, kde sa uvádzajú názvy stĺpcov
tbody ako telo tabuľky, kde je samotný obsah tabuľky (hodnoty údajov)
tfoot ako pätička tabuľky, kde sa uvádzajú napríklad súčty hodnôt
Okrem tagu td, ktorým sa štandardne definuje bunka tabuľky, existuje ešte tag th, ktorý sa zvykne používať pre bunky, ktoré sú súčasťou názvov.
Ak chceme tabuľku nejak pomenovať, vieme použiť tag caption pre popis tabuľky.
<table border="2">
<caption>Tabuľka mojich hodnôt pre HTML tutoriál</caption>
<thead>
<tr>
<th> TABUĽKA </th>
<th>Stĺpec 1</th>
<th>Stĺpec 2</th>
<th>Stĺpec 3</th>
</tr>
</thead>
<tbody>
<tr>
<th>Riadok 1</th>
<td>5</td>
<td>4</td>
<td>3</td>
</tr>
<tr>
<th>Riadok 2</th>
<td>3</td>
<td>2</td>
<td>7</td>
</tr>
</tbody>
<tfoot>
<tr>
<th>Spolu</th>
<td>8</td>
<td>6</td>
<td>10</td>
</tr>
</tfoot>
</table>
Ak chceme umiestniť popis tabuľky dole (pod tabuľku), stačí pridať CSS pravidlo do atribútu style (caption-side:bottom). Podobne vieme upraviť aj zarovnanie v bunkách tabuľky (cez parameter text-align:right - zarovnanie doprava).
<table border="2" cellpadding="4">
<caption style="caption-side:bottom">Tabuľka mojich hodnôt pre HTML tutoriál</caption>
<thead>
<tr>
<th> TABUĽKA </th>
<th>Stĺpec 1</th>
<th>Stĺpec 2</th>
<th>Stĺpec 3</th>
</tr>
</thead>
<tbody>
<tr>
<th>Riadok 1</th>
<td style="text-align:right">5</td>
<td style="text-align:right">4</td>
<td style="text-align:right">3</td>
</tr>
<tr>
<th>Riadok 2</th>
<td style="text-align:right">3</td>
<td style="text-align:right">2</td>
<td style="text-align:right">7</td>
</tr>
</tbody>
</table>
Tagy pre oblasti tabuľky thead, tbody a tfoot sú tzv. sémantické tagy. Sémantické tagy sú také, ktorých úlohou je definovať význam (v našom prípade rozlíšiť dáta tabuľky od názvov stĺpcov). O sémantike v jazyku HTML si viac povieme neskôr. Nateraz stačí vedieť, že existujú takéto obaľovacie tagy v tabuľke, pomocou ktorých vieme oddeliť dáta od popisu dát, keby sme to niekedy potrebovali.
Keď chceme nastaviť nejaké vlastnosti pre riadok tabuľky, je to pomerne jednoduché. Stačí tieto vlastnosti zadať do tagu tr a oni sa aplikujú na všetky vnorené bunky (všetky bunky tohto riadku).
V prípade stĺpcov je to zložitejšie. Preto existujú tagy colgroup a col, pomocou ktorých vieme zadefinovať vlastnosti po stĺpcoch (naprieč všetkými riadkami). Pre spojenie viac stĺpcov vieme použiť atribút span, kde ako hodnotu uvedieme počet stĺpcov. Tieto tagy sa zvyknú dávať na začiatok tabuľky hneď za otvárací tag table
<table border="2" cellspacing="9">
<colgroup>
<col style="background-color: pink;">
<col span="3" style="background-color: lime;">
</colgroup>
<thead>
<tr style="background-color: orange;">
<th> TABUĽKA </th>
<th>Stĺpec 1</th>
<th>Stĺpec 2</th>
<th>Stĺpec 3</th>
</tr>
</thead>
<tbody>
<tr>
<th>Riadok 1</th>
<td>5</td>
<td>4</td>
<td>3</td>
</tr>
<tr>
<th>Riadok 2</th>
<td>3</td>
<td>2</td>
<td>7</td>
</tr>
</tbody>
<tfoot>
<tr>
<th>Spolu</th>
<td>8</td>
<td>6</td>
<td>10</td>
</tr>
</tfoot>
</table>
Poznámka na záver k štýlovaniu tabuliek: v rámci tejto kapitoly HTML tutoriálu o tabuľkách sme si ukázali aj použitie atribútov, ktoré nastavujú vizuálnu podobu tabuľky (zmena hrúbky okrajov buniek, farba pozadia a pod.). Tieto vizuálne vlastnosti sa v jazyku HTML nezvyknú používať a ani neodporúčajú. My sme ich takto uvádzali pre jednoduchšie vysvetlenie a tiež preto, že nie každý pozná jazyk CSS, ktorým sa dá dosiahnuť to isté, a ešte efektívnejšie. Pre vizuálne (grafické) úpravy dokumentu je lepšie použiť jazyk CSS. Vkladanie pravidiel CSS na vizuálnu úpravu vlastností sme demonštrovali cez atribút style. Viac o použití jazyka CSS na štýlovanie HTML dokumentov nájdete v kapitole Úvod do CSS
V tejto kapitole HTML tutoriálu sme sa naučili vytvárať tabuľky HTML tagom table a následne:
členiť tabuľky na stĺpce a riadky pomocou tagov tr, td a th
členiť tabuľky na hlavičku, telo a pätu cez thead, tbody a tfoot
používať popis tabuľky caption
aplikovať CSS štýly na tabuľku pomocou atribútu style