HTML (HyperText Markup Language) je značkovací jazyk pro tvorbu webových stránek. Nebo jinak řečeno – jazyk, pomocí nějž je opatřena významem (a občas také jen pouze vzhledem) asi největší hromada dat volně dostupná na internetu.
Kdyby se dalo HTML zapisovat jen podle pravidel XML, dalo by se s trochou licence také říci, že:
„HTML je XML-jazyk, pro jehož elementy je nadefinován vzhled pomocí CSS.“
Ovšem tvrzení je v uvozovkách, protože:
<body>
je HTML a musí se tedy komentovat XMLčkově, obsahem elementu <style>
jsou CSSková pravidla a uvnitř elementu <script>
je pro změnu zase program v jazyce JavaScript (který se pravda dá ještě víceřádkově komentovat stejně jako CSSko): Tři různé jazyky, tři různé parsery a jeden jim všem vládne. Pochopitelně ten na HTML5.
Nejen z historických důvodů si ale HTML-parser musí poradit třebas i s tímto paskvilem:
Bez přísných XML-pravidel se v tomto případě dá skutečně jen vytušit, co tím chtěl básník říci. A dlouhou dobu se tak prohlížeče chovaly – prostě hádaly (a kdo měl většinu, přinutil ostatní hádat, jak to asi zrovna hádá on :-).
Naštěstí pro nás po DLOUHÉ, VELMI DLOUHÉ době výrobci prohlížečů přesvědčili nejdříve sami sebe a následně i vrchní webovou standardizační organizaci, že takhle to dál nejde, a zavedli HTML5, které mimo spousty nejnovějších vychytávek (které tam stejně měly být už nejmíň deset let) i přesně definuje tahle „hádací“ pravidla.
Zjednodušeně (a asi sem tam s nějakou chybou) to vypadalo asi takhle:
<font>
).
document.write()
).
Vraťme se zpátky ke (správné) struktuře HTML-dokumentu:
Hlavička (<head>
) by měla obsahovat pouze metadata HTML-dokumentu plus případné styly a skripty. Ovšem jsme v HTML, že, takže dokonce i zobrazovaný obsah, který by jinak měl být jen a pouze v těle (<body>
), zde bohužel může být a také se pak zobrazí.
Nejdůležitějším údajem hlavičky je kódování, které by mělo být co nejvíc na začátku. S kódováním HTML-dokumentů je to však mnohem složitější.
Kromě nadpisu stránky (<title>
) je dobrým zvykem uvádět i další metadata, byť jejich přínos pro vyhledávání v dnešní době již asi není tak velký, jako kdysi býval.
Co se týká stylů a skriptů, tak je možné u nich uvádět jejich MIME-type (pomocí atributu @type
), ale pro běžně užívané CSS a JavaScript to (v HTML5) není třeba. Zajímavé je, že oba tyto elementy se mohou vyskytovat i kdekoliv v těle dokumentu (jsou pak samozřejmě vyhodnoceny až ve chvíli, kdy k nim HTML-parser dorazí a předá je ke zpracování dál).
Styly je možno k HTML-dokumentu připojit několika možnými způsoby:
<link>
:
@rel
a @type
slouží k rozlišení jednotlivých variant použití elementu <link>
, @href
pak odkazuje na umístění stylopisového souboru a @media
má stejný význam jako v CSS samotném.
<style>
:
@import
:
@style
, například:
Zvláštností HTML je, že definuje několik atributů, které mohou viset prakticky na jakémkoliv elementu a slouží (mimo skriptování a dalších věcí) jako šikovné zkratky a háčky pro pověšení stylů. Jedná se především o atributy:
@id
– identifikátor (teoreticky jedinečný) elementu;
@class
– seznam (nejen) stylových tříd (oddělený mezerami);
@lang
– jazyk textu elementu a jeho potomků.
Skripty se k HTML-dokumentu připojují pomocí elementu <script>
dvěma různými způsoby:
@src
:
Kromě toho prakticky všechny elementy v HTML na sobě mohou mít speciální atributy sloužící pro obsluhu nejrůznějších událostí (např. onclick, onmousemove, onload…), které obsahují také skripty (přinejmenším v podobě volání jinde nadefinovaných funkcí).
Značek v HTML (a obzvláště HTML5) je milión. Od těch zajišťujících vlastní strukturu dokumentu (<html>
, <head>
…), přes elementy pro dělení na bloky (<section>
, <p>
…), seznamy (<ul>
, <li>
…) či tabulky (<table>
, <th>
…), až po řádkové elementy (<em>
, <kbd>
…) a především formuláře (<form>
, <fieldset>
, <input>
…)
Užitečné zdroje:
<input>
zde na webu