4. díl - Tabulky v HTML

HTML a CSS Statický web Tabulky v HTML American English version English version

ONEbit hosting Unicorn College Tento obsah je dostupný zdarma v rámci projektu IT lidem. Vydávání, hosting a aktualizace umožňují jeho sponzoři.

V minulé lekci kurzu o tvorbě jednoduchého webu v HTML a CSS jsme se naučili do stránek vkládat obrázky a odkazy. V dnešní lekci si ukážeme, jak se v HTML dělají tabulky a seznamy. Oboje jsou jakési kontejnery, do kterých se vkládají další elementy. Používáme je pro uspořádání těchto elementů, čímž dosáhneme přehlednosti a jednotného vzhledu.

Tabulky

Často se stává, že na stránkách potřebujeme tabulku. Tabulka nám umožňuje vkládat do jejích buněk elementy, které jsou potom hezky uspořádané. Na rozdíl od odstavců, které se vždy skládají pod sebe, si můžeme text v tabulce skládat úhledně vedle sebe. V buňkách mohou být kromě textu samozřejmě i obrázky a další elementy. To se může hodit například k zobrazování nějakých výsledků, parametrů nebo statistik. Například na devbooku se tabulky mimo jiné využívají na výpis programů a tutoriálů.

První tabulka

Vytvořme si první, jednoduchou tabulku. Založte si někde bokem nový HTML soubor, vyplňte doctype, hlavičku, však to už znáte :) Vytvořme si tabulku o 3 sloupích a 2 řádcích. Hlavičku i patičku zatím vynecháme.

<table border="1">
        <tr>
                <td>Buňka 1</td>
                <td>Buňka 2</td>
                <td>Buňka 3</td>
        </tr>
        <tr>
                <td>Buňka 4</td>
                <td>Buňka 5</td>
                <td>Buňka 6</td>
        </tr>
</table>

Výsledek bude vypadat takto:

Tabulka v HTML

Tabulku uzavřeme mezi párový tag <table>. Každý řádek uzavřeme do párového tagu <tr> (jako table row = řádek tabulky). Jednotlivé buňky jsou poté v řádku obalené tagem <td> (jako table data).

Protože stylování webových stránek se budou věnovat samostatné díly, my si zde prozradíme pouze atribut border, který označuje tloušťku rámečku tabulky. Jako výchozí je 0, tedy vypnutý. Výše jsme ho nastavili na 1 pixel.

Tabulka s hlavičkou

Tabulce můžeme dát i složitější strukturu a to podobnou, jakou má HTML stránka. Může obsahovat hlavičku v tagu <thead> a potom tělo v <tbody>. Hlavičkou tabulky se myslí první řádek, který popisuje, co hodnoty ve sloupích znamenají.

Hlavičku můžeme také úplně vynechat a tělo poté nemusíme do tbody obalovat. Za thead může následovat podobně tfoot, obsahující patičku tabulky. V hlavičce píšeme také <tr>, ale místo <td> píšeme <th> (jako table header = nadpis tabulky).

Nejlépe vše pochopíme na další ukázce, vytvoříme si tabulku s několika notebooky a jejich parametry. Ikonky notebooků jsem pro vás připravil, stáhněte si je níže:

Notebook Notebook Notebook

Naši jednoduchou tabulku výše nyní přetvoříme na něco složitějšího, vložte místo ní kód níže:

<table border="1">
  <thead>
        <tr>
                <th>Náhled</th>
                <th>Typ</th>
                <th>Procesor</th>
                <th>Graf. karta</th>
                <th>Skladem</th>
        </tr>
  </thead>
  <tbody>
        <tr>
                <td><img src="obrazky/nb1.png" alt="Notebook"></td>
                <td>AB8AC9</td>
                <td>Intel Atom</td>
                <td>Nvidia</td>
                <td>Ano</td>
        </tr>
        <tr>
                <td><img src="obrazky/nb2.png" alt="Notebook"></td>
                <td>GS8DGF</td>
                <td>AMD</td>
                <td>ATI</td>
                <td>Ano</td>
        </tr>
        <tr>
                <td><img src="obrazky/nb3.png" alt="Notebook"></td>
                <td>KG1862A</td>
                <td>Neuvedeno</td>
                <td>Neuvedeno</td>
                <td>Ne</td>
        </tr>
  </tbody>
</table>

Výsledek:

HTML tutoriál – Tabulka s hlavičkou a tělem

Vidíme, že tabulka má hlavičku, text v hlavičce je tučný a centrovaný. Jinak zde není zatím nic nového.

Slučování buněk

Sousední buňky v tabulce můžeme slučovat. Pokud budeme slučovat buňky v řádku, zapíšeme buňku jen jednou a dáme ji atribut colspan. Ten bude mít hodnotu s číslem, kolik buněk propojuje. V tabulce uvedené výše se nabízí propojit buňky Neuvedeno v jednu. Hodnota colspan buňky bude tedy 2 (spojujeme 2 buňky v řádku) a druhou buňku smažeme. Kód posledního řádku tedy upravíme takto:

<tr>
        <td><img src="obrazky/nb3.png" alt="Notebook"></td>
        <td>KG1862A</td>
        <td colspan="2">Neuvedeno</td>
        <td>Ne</td>
</tr>

A výsledek:

HTML tutoriál – Tabulka – sloučení buněk v řádku

Obdobně můžeme spojovat i buňky ve sloupci a to pomocí atributu rowspan, který udává, přes kolik řádků se spojuje. Spojme ještě 2 buňky s textem "Ano". Jednu buňku opět vymažeme, té horní dáme atribut rowspan s hodnotou 2. První 2 řádku budou tedy vypadat takto:

<tr>
        <td><img src="obrazky/nb1.png" alt="Notebook"></td>
        <td>AB8AC9</td>
        <td>Intel Atom</td>
        <td>Nvidia</td>
        <td rowspan="2">Ano</td>
</tr>
<tr>
        <td><img src="obrazky/nb2.png" alt="Notebook"></td>
        <td>GS8DGF</td>
        <td>AMD</td>
        <td>ATI</td>
</tr>

Výsledek:

HTML tutoriál – Tabulka – sloučení buněk ve sloupci

To je prozatím k tabulkám vše, kód dnešního tutoriálu opět ke stažení v příloze níže. Jak se text v tabulkách styluje a zarovnává a jak se buňkám nastavuje velikost si ukážeme později. Dříve se k tomu používaly speciální atributy, které jsou však nyní zastaralé a tak je zde nechci uvádět. Nově se pro vše používá stylovací jazyk CSS, který si brzy uvedeme.

V minulosti se tabulky používaly pro tvorbu tzv. layoutu stránky (rozdělení stránky na odkazovou lištu, logo a obsah), a i když to u statických stránek může zdát výhodné, je to z významového hlediska nevhodné. Zpočátku seriálu jsem nechtěl čtenáře mást cizími slovy, ale odteď budu používat slovo sémantika. Webová sémantika se zabývá významem jednotlivých elementů. Použití tabulky na rozvržení stránky je tedy nesémantické, protože i když se web vykreslí správně, tabulka má obsahovat nějaké hodnoty a ne celý webový obsah. Zkuste si vzpomenout na rozdíl mezi tagem <strong> a <b>. Oba vypadají stejně, ale zvýrazňovat text tagem <b> je nesémantické, protože tento tag nedává textu absolutně žádný vyšší význam, jen říká, že se má k vykreslení použít tučný font. Naopak <strong> říká: "Tento text je důležitý". Sémantika je to, co to znamená, ne to, jak to vypadá. Je velmi důležitá, protože sémantické webové stránky mají potom výhodu ve vyhledávačích a mají často vyšší návštěvnost.

Příště si ukážeme seznamy a přidáme do našeho webu navigaci.


 

Stáhnout

Staženo 831x (16.95 kB)
Aplikace je včetně zdrojových kódů v jazyce HTML a CSS

 

 

Článek pro vás napsal David Čápka
Avatar
Jak se ti líbí článek?
54 hlasů
Autor pracuje jako softwarový architekt a pedagog na projektu ITnetwork.cz (a jeho zahraničních verzích). Velmi si váží svobody podnikání v naší zemi a věří, že když se člověk neštítí práce, tak dokáže úplně cokoli.
Unicorn College Autor se informační technologie naučil na Unicorn College - prestižní soukromé vysoké škole IT a ekonomie.
Miniatura
Předchozí článek
Obrázky a odkazy v HTML
Miniatura
Všechny články v sekci
Webové stránky krok za krokem
Miniatura
Následující článek
Seznamy v HTML a zopakování tabulky
Aktivity (2)

 

 

Komentáře
Zobrazit starší komentáře (20)

Avatar
vsk soft
Člen
Avatar
vsk soft:8.4.2016 10:31

Mam otazocku. Vieme nastavit pevnu sirku bunky tabulky. Ak tam mam dlhsi text aby sa mi automaticky zalamoval a roztahoval sa dole. Nieco ako vlastnost width.

 
Odpovědět 8.4.2016 10:31
Avatar
Tomáš123
Člen
Avatar
Odpovídá na vsk soft
Tomáš123:8.4.2016 11:03

Áno, niečim ako width. Konkrétne pomocou width... Nebolo by jednoduchšie vyskúšať si to predtým než sa opýtaš?

Odpovědět 8.4.2016 11:03
Keby nebolo Internetu Exploreru, nebolo by dnešného internetu.
Avatar
Vladimír Maliniak:9.4.2016 14:54

Děkuji za článek, supr pro naučení základů :)

Odpovědět 9.4.2016 14:54
Čas je jen individuální pojetí světa, veškeré výmluvy typu:"Nemám na to čas" jsou tedy bezpředmětné, vždy j...
Avatar
Kateřina
Člen
Avatar
Kateřina :2.11.2016 12:25

Báječný kurz pro úplného začátečníka. Jednoduše vysvětleno, zatím vše chápu a všechny úkoly mi vyšly. Když se vloudila chybička, hned jsem ji našla. Díky! Pokračuji dál.

 
Odpovědět  +1 2.11.2016 12:25
Avatar
Michal Martinec:4.12.2016 11:29

Mam otazku jednu malu. Aky je rozdiel medzi:
<td><img src="obrazky/nb1­.png" alt="Notebook"></td>
a
<td><img src="obrazky/nb1­.png" alt="Notebook" /></td>
Je potrebne ukoncit img lomitkom alebo nie? Lebo funguje mi to aj s tym aj bez toho a aj v prikladoch tu to je niekedy pouzite a niekedy nie.

Odpovědět 4.12.2016 11:29
Neporovnavaj sa s ostatnymi. Porovnavaj sa sam so sebou.
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na Michal Martinec
Jiří Gracík:4.12.2016 15:45

Lomítkem se nepárové tagy musely ukončovat v xhtml. V html už ne. Pokud je to někde v seriálu nebo materiálech použito s lomítkem, pak je to zbytečné :)

Editováno 4.12.2016 15:46
Odpovědět 4.12.2016 15:45
Creating websites is awesome till you see the result in another browser ...
Avatar
Michal Martinec:4.12.2016 15:49

Dakujem ;-)

Odpovědět 4.12.2016 15:49
Neporovnavaj sa s ostatnymi. Porovnavaj sa sam so sebou.
Avatar
Hrdina Milan
Člen
Avatar
Hrdina Milan:15. dubna 9:55

Ahoj, mam dotazek, v nadpisu Náhled se mi nekorektne zobrazuje dlouhe 'a' a netusim proc. Viz obrazek. Napadlo me jestli to neni tim, ze mam chrom v anglictine.

 
Odpovědět 15. dubna 9:55
Avatar
IT Man
Redaktor
Avatar
Odpovídá na Hrdina Milan
IT Man:15. dubna 12:01

Do hlavičky (head) umisť meta tag se znakovou sadou UTF-8. Bude to tedy vypadat následovně:

<head>
        <meta charset="utf-8" />
        <!-- zbytek tvé hlavičky -->
</head>
Odpovědět 15. dubna 12:01
Když nevíš jak dál, podá ti ruku někdo, od koho by jsi to nečekal. A tu šanci musíš přijmout!
Avatar
Hrdina Milan
Člen
Avatar
Odpovídá na IT Man
Hrdina Milan:15. dubna 12:06

aha dekuji moc, jsem mel spatne uvozovku. Uz to funguje korektne. :)

 
Odpovědět  +1 15. dubna 12:06
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 30. Zobrazit vše