4. díl - Tabulky v HTML

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

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 779x (16.95 kB)
Aplikace je včetně zdrojových kódů v jazyce HTML a CSS

 

  Aktivity (2)

Článek pro vás napsal David Čápka
Avatar
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.

Jak se ti líbí článek?
Celkem (49 hlasů) :
4.918354.918354.918354.918354.91835


 


Miniatura
Předchozí článek
Cvičení k 1.-3. lekci HTML a CSS
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

 

 

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

Avatar
vojtanosek
Člen
Avatar
vojtanosek:

Ano. obojí dvojí. Však jsem dělal i web dsk.comxa.com a tam mě to diaktriku ukazuje. Jsem na anglickém hostingu. Ale prohlížeč mě to ukazuje tak, jako kdybych tam tu diaktriku neměl. Přiložím kód, ale mysllím si, že mám vše správně. Tak kde potom bude chyba?

<!DOCTYPE html>
<html>
  <head>
  <html lang="cs-cz"/>
  <meta http-equiv="Content-type" content="text/html" meta charset=utf-8/>
  <link href="style.css" rel="stylesheet" type="text/css"/>
  <title>Nový projekt</title>
  </head>
  <article>
  <header>
  <img src: P.jpeg>
  </header>
  <section>
<p>Obsah bude doplnen</p>
<p>Obsah bude doplnen</p>
<p>Obsah bude doplnen</p>
  </section>
  <div name="A">
<link>www.google.com</link>
</div>
  </article>
</html>
 
Odpovědět 1.6.2015 21:56
Avatar
tomasmanhal
Člen
Avatar
Odpovídá na vojtanosek
tomasmanhal:

jen charset="utf-8"

Editováno 1.6.2015 22:29
Odpovědět  +1 1.6.2015 22:29
Kdyby nám dodali k životu zdrojový kód, vše by bylo jednodušší...
Avatar
Odpovědět 1.6.2015 22:57
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
tomasmanhal
Člen
Avatar
Odpovídá na vojtanosek
tomasmanhal:

Celkově je v tom kódu bordel hroznej. Doporučuju se podívat na manuály zde.

Odpovědět  +1 2.6.2015 0:55
Kdyby nám dodali k životu zdrojový kód, vše by bylo jednodušší...
Avatar
vojtanosek
Člen
Avatar
vojtanosek:

Díky, mrknu se. Porovnám to s předchozím webem.

 
Odpovědět 2.6.2015 7:31
Avatar
vojtanosek
Člen
Avatar
vojtanosek:

Všiml jsme si ještě chyb u obrázku. Všechny jsem opravil. :D Jinak html může být v head ;). U utf-8 mě chyběly něco chybělo.

Editováno 2.6.2015 14:48
 
Odpovědět 2.6.2015 14:44
Avatar
vsk soft
Člen
Avatar
vsk soft:

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. dubna 10:31
Avatar
Tomáš123
Člen
Avatar
Odpovídá na vsk soft
Tomáš123:

Á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. dubna 11:03
Keby nebolo Internetu Exploreru, nebolo by dnešného internetu.
Avatar
Vladimír Maliniak:

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

Odpovědět 9. dubna 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 :

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. listopadu 12:25
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 24. Zobrazit vše