☰ menu
Pavel Satrapa

Formátování tabulek

V okolních částech textu opakovaně prohlašuji, že je záhodno oddělit obsah prezentace od formy a nezaplevelovat HTML kód konstrukcemi, jejichž cílem je dosáhnout určité vizuální podoby. Tu má zajistit CSS.

Tabulky představují výjimku potvrzující pravidlo. Někdy bývají proměnlivé, individuální, nezřídka je třeba formátovat konkrétně jednu unikátní buňku. Dělat to prostřednictvím CSS samozřejmě lze, s výhodou se dají využít třídy, nicméně někdy bývá výhodnější ovlivňovat formátování přímo v HTML. Proto pro tabulky zachovává i HTML5 řadu formátovacích parametrů ovlivňujících jejich vzhled. Jimi se budu zabývat v této části.

Vzhled tabulky zpravidla vychází z kombinace CSS pravidel určujících základní parametry a formátovacích atributů ovlivňujících individuální části, jež mají vypadat specificky.

Celá tabulka (table)

Prostřednictvím atributů prvku <table> se řídí vzhledové parametry celé tabulky. Jedním z těch méně potřebných je width, jehož prostřednictvím lze zadat celkovou šířku tabulky. Jako hodnotu použijte buď samotné číslo (pak znamená absolutní rozměr v obrazovkových bodech, čili pixelech), nebo číslo následované znakem „%“, které určuje šířku tabulky v procentech vůči aktuální šířce řádku.

Hned několik atributů se točí kolem rámečků a čar oddělujících navzájem jednotlivé buňky. Jsou to:

border
Šířka rámečku (v pixelech).
frame
Které části rámečku kolem tabulky vykreslovat. Možné hodnoty:
voidžádné
abovejen horní stranu
belowjen spodní stranu
hsideshorní a dolní stranu
vsideslevou a pravou stranu
lhsjen levou stranu
rhsjen pravou stranu
boxvšechny čtyři
bordervšechny čtyři
rules
Které části uvnitř tabulky od sebe oddělit čarami. Možné hodnoty:
nonežádné
groupsskupiny řádků a sloupců
rowsřádky
colssloupce
allřádky i sloupce (čili buňky)

Podívejte se na příklady rámečků. Další dvojice atributů se týká mezerování uvnitř tabulky:

cellspacing
Šířka mezery mezi buňkami (v pixelech).
cellpadding
Šířka mezery mezi okrajem buňky a její hranicí (v pixelech).

Rozdíl mezi nimi spočívá v tom, že mezera vytvořená cellpadding je součástí buňky, zatímco mezera vzniklá na základě cellspacing leží mezi buňkami. Zadáte-li například cellspacing="10", vzniknou mezi buňkami mezery 10 pixelů široké. Pokud zadáte cellpadding="10", vloží se do každé buňky mezera velikosti 10 px mezi její obsah a hranici. Jinými slovy v tomto druhém případě se mezery sousedních buněk sčítají a vznikne celková mezera 20 pixelů.

Buňky (td a th) a řádky (tr)

Prvky tvořící obsah tabulky historicky mívaly několik atributů ovlivňujících zarovnání jejich obsahu. Později byly prohlášeny za zastaralé a neměly by se používat, protože na tyto věci máme CSS. Nicméně prohlížeče kvůli zpětné kompatibilitě alespoň ty nejběžnější dosud podporují, takže je v případě nouze lze použít.

Patří sem především align pro vodorovné zarovnání a valign pro zarovnání ve svislém směru.