Přeskočit na obsah

Hypertext Markup Language: Porovnání verzí

Z Wikipedie, otevřené encyklopedie
Smazaný obsah Přidaný obsah
Timy (diskuse | příspěvky)
úpravy formulací, encyklopedizace, typo, wiki atp.
Řádek 1: Řádek 1:
'''HTML''' je zkratka z anglického ''HyperText Markup Language'', [[značkovací jazyk]] pro [[hypertext]]. Je jedním z jazyků pro vytváření stránek v systému [[World Wide Web]], který umožňuje publikaci stránek na [[Internet]]u.
'''HyperText Markup Language''', označovaný zkratkou '''HTML''', je [[značkovací jazyk]] pro [[hypertext]]. Je jedním z jazyků pro vytváření stránek v systému [[World Wide Web]], který umožňuje publikaci dokumentů na [[Internet]]u.


Jazyk je podmnožinou dříve vyvinutého rozsáhlého univerzálního značkovacího jazyka [[SGML]] (''Standard Generalized Markup Language''). Vývoj HTML byl ovlivněn vývojem webových [[Webový prohlížeč|prohlížečů]], které zpětně ovlivňovaly definici jazyka.
Jazyk je aplikací dříve vyvinutého rozsáhlého univerzálního značkovacího jazyka [[SGML]] (''Standard Generalized Markup Language''). Vývoj HTML byl ovlivněn vývojem [[webový prohlížeč|webových prohlížečů]], které zpětně ovlivňovaly definici jazyka.


== Vývoj jazyka ==
== Vývoj jazyka ==
V roce [[1989]] spolupracovali '''Tim Berners-Lee''' a '''Robert Caillau''' na propojeném informačním systému pro [[CERN]], výzkumné centrum fyziky poblíž [[Ženeva|Ženevy]] ve [[Švýcarsko|Švýcarsku]]. V té době se pro tvorbu dokumentů obvykle používal [[TeX]], [[Postscript]] a také '''SGML'''. Berners-Lee si uvědomoval, že potřebují něco jednoduššího a v roce [[1990]] byl tedy navržen jazyk '''HTML''' a protokol pro jeho přenos v síti - [[Hyper Text Transfer Protocol|HTTP]] (''HyperText Transfer Protocol - přenosový protokol hypertextu''). Zároveň také '''Tim Berners-Lee''' napsal první webový prohlížeč „WorldWideWeb“.
V roce [[1989]] spolupracovali [[Tim Berners-Lee]] a [[Robert Caillau]] na propojeném informačním systému pro [[CERN]], výzkumné centrum fyziky poblíž [[Ženeva|Ženevy]] ve [[Švýcarsko|Švýcarsku]]. V té době se pro tvorbu dokumentů obvykle používaly jazyky [[TeX]], [[PostScript]] a také SGML. Berners-Lee si uvědomoval, že potřebují něco jednoduššího a v roce [[1990]] byl tedy navržen jazyk HTML a [[protokol (informatika)|protokol]] pro jeho přenos v počítačové síti [[Hyper Text Transfer Protocol|HTTP]] (''HyperText Transfer Protocol přenosový protokol hypertextu''). Zároveň také Tim Berners-Lee napsal první webový prohlížeč, který nazval [[WorldWideWeb]].


V roce [[1991]] CERN zprovoznil svůj web. Současně '''NCSA''' (''National Center for Supercomputer Applications'') vybídlo '''Marca Andreessena''' a '''Erica Binu''' k vyvinutí prohlížeče [[Mosaic]]. Byl vyvinut v roce [[1993]] pro počítače [[Osobní počítač|PC]] a [[Macintosh]] a měl obrovský úspěch. Byl to první prohlížeč s grafickým uživatelským rozhraním.
V roce [[1991]] CERN zprovoznil svůj web. Současně organizace [[NCSA]] (''National Center for Supercomputer Applications'') vybídla [[Marc Andreessen|Marca Andreessena]] a [[Eric Bina|Erica Binu]] k vytvoření prohlížeče [[Mosaic (prohlížeč)|Mosaic]]; ten vznikl v roce [[1993]] ve verzích pro počítače [[IBM PC]] a [[Macintosh]] a měl obrovský úspěch. Byl to první prohlížeč s [[grafické uživatelské rozhraní|grafickým uživatelským rozhraním]].

Došlo k velkému rozvoji webu a bylo nutné pro '''HTML''' definovat standardy.
Následoval rychlý rozvoj webu, takže bylo nutné pro HTML definovat [[standard]]y.


=== Verze jazyka ===
=== Verze jazyka ===
; Verze 0.9
* '''Verze 0.9''' – Byla vydána zhruba v roce 1991. Nepodporuje grafický režim (Tim Berners-Lee)
: Byla vydána zhruba v roce 1991. Nepodporuje grafický režim (verze, kterou vytvořil Tim Berners-Lee).
* '''Verze 2.0''' – Zachycuje stav jazyka v polovině roku [[1994]]. Standard vydala komunita [[IETF]] (''Internet Engineering Task Force''). Je to první verze, která odpovídá syntaxi '''SGML'''. Přidává k původní specifikaci interaktivní formuláře, podpora grafiky.
; Verze 2.0
* '''Verze 3.2''' – Byla vydána [[14. leden|14. ledna]] [[1997]] a zachycuje stav jazyka v roce [[1996]]. Připravovaná verze HTML 3.0 nebyla nikdy přijata jako standard, protože byla příliš složitá a žádná firma nebyla schopna naprogramovat její podporu ve svém prohlížeči. Standard už vydalo konsorcium [[W3C]], stejně jako následující verze. Přidává k jazyku tabulky, zarovnávání textu a stylové elementy pro ovlivňování vzhledu.
: Zachycuje stav jazyka v polovině roku [[1994]]. Standard vydala komunita [[IETF]] (''Internet Engineering Task Force''). Je to první verze, která odpovídá syntaxi SGML. Přidává k původní specifikaci interaktivní formuláře a podporu grafiky.
* '''Verze 4.0''' – Byla vydána [[18. prosinec|18. prosince]] [[1997]]. Do specifikace jazyka přidala nové prvky pro tvorbu tabulek, formulářů a nově byly standardizovány rámy (''frames''). Tato verze se snaží dosáhnout původního účelu - prvky by měly vyznačovat ''význam'' (sémantiku) jednotlivých částí dokumentu, vzhled má být ovlivňován připojovanými [[Cascading Style Sheets|styly]]. Některé prezentační elementy byly zavrženy.
; Verze 3.2
* '''Verze 4.01''' – Byla vydána [[24. prosinec|24. prosince]] [[1999]]. Tato verze opravuje některé chyby verze předchozí <sup><ref>http://www.w3.org/TR/REC-html40/appendix/changes.html#h-A.1</ref></sup>. Původně se myslelo, že se bude jednat o poslední verzi a budoucnost bude patřit pouze [[XHTML]].
: Byla vydána [[14. leden|14. ledna]] [[1997]] a zachycuje stav jazyka v roce [[1996]]. Připravovaná verze HTML 3.0 nebyla nikdy přijata jako standard, protože byla příliš složitá a žádná firma nebyla schopna naprogramovat její podporu. Standard už vydalo konsorcium [[W3C]], stejně jako následující verze. Přidává k jazyku tabulky, zarovnávání textu a stylové elementy pro ovlivňování vzhledu.
* '''Verze 5.0''' – [[7. březen|7. března]] [[2007]] byla založena nová pracovní skupina HTML, jejíž cílem je vývoj nové verze HTML. V květnu 2007 bylo odhlasováno, že základem nové specifikace se stanou Web Applications 1.0 a Web Forms 2.0 ze specifikace [[WHATWG]]. Jako název nové specifikace bylo odhlasováno HTML 5.0 a specifikace by měla být hotova v roce 2010 (odtud ji začnou vývojaři webových aplikací používat, finalní verze zbavená všech chyb se však odhaduje až na rok 2022 <sup><ref>http://www.root.cz/zpravicky/kdy-bude-hotovo-html-5/</ref></sup>
; Verze 4.0
: Byla vydána [[18. prosinec|18. prosince]] [[1997]]. Do specifikace jazyka přibyly nové prvky pro tvorbu tabulek, formulářů a nově byly standardizovány rámy (''frames''). Tato verze se snaží dosáhnout původního účelu prvky by měly vyznačovat význam (sémantiku) jednotlivých částí dokumentu, vzhled má být ovlivňován připojovanými [[Cascading Style Sheets|styly]]. Některé prezentační elementy byly zavrženy.
; Verze 4.01
: Byla vydána [[24. prosinec|24. prosince]] [[1999]]. Tato verze opravuje některé chyby verze předchozí.<ref>[http://www.w3.org/TR/REC-html40/appendix/changes.html#h-A.1 Příloha A.1 ke specifikaci HTML 4.01] – popis změn mezi verzemi 4.0 a 4.01</ref> Podle původního předpokladu se mělo jednat o poslední verzi, po které by se přešlo na [[XHTML]].
; Verze 5
: [[7. březen|7. března]] [[2007]] byla založena nová pracovní skupina HTML, jejíž cílem je vývoj nové verze HTML. V květnu 2007 bylo odhlasováno, že základem nové specifikace se stanou Web Applications&nbsp;1.0 a Web Forms&nbsp;2.0 ze specifikace [[WHATWG]]. Jako název nové specifikace bylo odhlasováno HTML&nbsp;5.0 a specifikace by měla být hotova v roce [[2010]] (odtud ji začnou vývojáři webových aplikací používat, finalní verze zbavená všech chyb se však odhaduje až na rok [[2022]]<ref>Jakub Šťastný: [http://www.root.cz/zpravicky/kdy-bude-hotovo-html-5/ ''Kdy bude hotovo HTML 5?''], [[Root.cz]], 17. 8. 2007</ref>).


== Popis jazyka ==
== Popis jazyka ==
=== Koncepce ===
=== Koncepce ===
Jazyk '''HTML''' je od verze 2.0 aplikací [[SGML]]. Je charakterizován množinou značek a jejich atributů pro danou verzi definovaných. Mezi značky se uzavírají části textu dokumentu a tím se určuje význam (''sémantiku'') obsaženého textu. Názvy jednotlivých značek se uzavírají mezi úhlové závorky (< a >). Část dokumentu tvořená otevírací značkou, obsahem a ukončovací značkou tvoří tzv. '''element''' (prvek) dokumentu. Například '''&lt;strong>''' je otevírací ''značka'' pro zvýraznění textu a '''&lt;strong>Červená Karkulka&lt;/strong>''' je ''element''. Součástí obsahu elementu mohou být další vnořené elementy. Atributy jsou doplňující informace, které upřesňují vlastnosti elementu.
Jazyk HTML je od verze 2.0 aplikací [[SGML]]. Je charakterizován množinou značek a jejich atributů definovaných pro danou verzi. Mezi značky se uzavírají části textu dokumentu a tím se určuje význam (''sémantika'') obsaženého textu. Názvy jednotlivých značek se uzavírají mezi úhlové závorky (<code>&lt;</code> a <code>&gt;</code>). Část dokumentu tvořená otevírací značkou, nějakým obsahem a odpovídající ukončovací značkou tvoří tzv. ''element'' (prvek) dokumentu. Například <code>&lt;strong></code> je otevírací značka pro zvýraznění textu a <code>&lt;strong>Červená Karkulka&lt;/strong></code> je element obsahující zvýrazněný text. Součástí obsahu elementu mohou být další vnořené elementy. Atributy jsou doplňující informace, které upřesňují vlastnosti elementu.


Značky, zvané [[tagy]] jsou obvykle párové (v [[XHTML]] jsou párové všechny). Rozlišujeme počáteční a koncové značky. Koncová značka má před názvem značky znak lomítko. Příklad pro označení odstavce:
Značky (zvané tagy) jsou obvykle párové (v [[XHTML]] jsou párové všechny), přičemž koncové značka je shodná se značkou počáteční, jen má před názvem znak [[lomítko]]. Příklad pro označení odstavce:
<pre><p>Text odstavce</p></pre>
<pre>
Některé značky jsou nepárové – nemají žádný obsah a nepoužívají koncovou značku. Příklad pro vykreslení vodorovné čáry:
<p>Text odstavce</p>
</pre>
<pre><hr></pre>
Tagy mohou obsahovat atributy, které popisují jejich vlastnosti nebo nesou jinou informaci. Příkladem může být odkaz (tag <code>a</code>), jehož atribut <code>href</code> říká, kam se uživatel po kliknutí na něj dostane (v tomto příkladu na stránku <code><nowiki>http://example.com</nowiki></code>):
Některé značky jsou nepárové – neobsahují žádný text. Příklad pro vykreslení vodorovné čáry
<pre><a href="http://example.com">text odkazu</a></pre>
<pre>
<hr>
</pre>
Tagy mohou obsahovat atributy popisující jejich vlastnosti nebo nesou jinou informaci. Příkladem může být odkaz (tag a), jehož atribut href říká, kam se uživatel po kliknutí na něj dostane (v tomto příkladu na stránku http://example.com)
<pre>
<a href="http://example.com">odkaz</a>
</pre>


HTML zná i jiné, méně známé konstrukce pro tvoření elementů. Jedná se o tzv. '''zkrácené HTML zápisy'''<sup><ref>http://atd.havrlant.net/zkracene-html-zapisy</ref></sup> <sup><ref>http://www.w3.org/TR/html4/appendix/notes.html#h-B.3.7</ref></sup>:
Jelikož je HTML aplikací SGML, existují i jiné, méně známé konstrukce pro tvoření elementů. Jedná se o tzv. ''zkrácené HTML zápisy'':<ref>Lukáš Havrlant: [http://atd.havrlant.net/zkracene-html-zapisy ''Zkrácené HTML zápisy''], 16. 6. 2006</ref><ref>[http://www.w3.org/TR/html4/appendix/notes.html#h-B.3.7 Kapitola B.3.7, ''Shorthand markup''] ve specifikaci HTML 4.01</ref>


<pre><element/Obsah/ je totéž jako <element>Obsah</element></pre>
* <code>&lt;element/Obsah/</code> je totéž jako <code>&lt;element>Obsah&lt;/element></code>
* <code>&lt;element>Obsah&lt;/></code> je totéž jako <code>&lt;element>Obsah&lt;/element></code>
* <code>&lt;el&lt;el2>Obsah</code> je totéž jako <code>&lt;el>&lt;el2>Obsah</code>
* <code>&lt;ul>&lt;li>Adam&lt;>Božena&lt;/ul></code> je totéž jako <code>&lt;ul>&lt;li>Adam&lt;/li>&lt;li>Božena&lt;/li>&lt;/ul></code>


Všechny tyto zápisy jsou sice podle normy validní a zcela ekvivalentní, ale žádný ze známých prohlížečů zkrácené verze nepodporuje, takže se nedoporučuje je používat.
<pre><element>Obsah</> je totéž jako <element>Obsah</element></pre>


Pro každou verzi existuje definice pravidel [[Document Type Definition|DTD]] (''Document Type Definition''). Od verze 4.01 musí být odkaz na deklaraci DTD v dokumentu uveden pomocí klíčového slova <code>DOCTYPE</code>. DTD definuje pro určitou verzi elementy a atributy, které lze používat.
<pre><el<el2>Obsah je totéž jako <el><el2>Obsah</pre>

<pre><ul>
<li>Tokio Hotel
<>Smrt
<>Barbar Conan
</ul>

Je totéž jako:

<ul>
<li>Tokio Hotel</li>
<li>Smrt</li>
<li>Barbar Conan</li>
</ul>
</pre>

Všechny tyto zápisy jsou sice validní, ale '''žádný ze známých prohlížečů je nepodporuje, takže se nedoporučuje je používat'''.

Pro každou verzi existuje definice pravidel '''DTD''' (''Document Type Definition''). Od verze 4.01 musí být odkaz na deklaraci DTD v dokumentu uveden pomocí klíčového slova DOCTYPE. DTD definuje pro určitou verzi, které elementy je možné používat a s jakými atributy.


Dokument může mimo značkování obsahovat další prvky:
Dokument může mimo značkování obsahovat další prvky:
* Direktivy – začínají znaky <!, jsou určeny pro zpracovatele dokumentu (prohlížeč)
* Direktivy – začínají znaky <code><!</code>, jsou určeny pro zpracovatele dokumentu (prohlížeč).
* Komentáře – pomocné texty pro programátora, nejsou součástí obsahu dokumentu a nezobrazují se (prohlížeč je ignoruje). Příklad komentáře je níže.
* Komentáře – pomocné texty pro programátora, nejsou součástí obsahu dokumentu a nezobrazují se (prohlížeč je ignoruje). Příklad komentáře je uveden níže.
* Kód skriptovacích jazyků
* Kód skriptovacích jazyků.
* Definice událostí a kód pro jejich obsluhu
* Definice událostí a kód pro jejich obsluhu.


=== Struktura dokumentu ===
=== Struktura dokumentu ===
Dokument v jazyku '''HTML''' má předepsanou strukturu:
Dokument v jazyku HTML má předepsanou strukturu:
*Deklarace DTD – je povinná až ve verzi 4.01, je uvedena direktivou '''<!DOCTYPE'''.
*Deklarace DTD – je povinná až ve verzi 4.01, je uvedena direktivou <code><!DOCTYPE</code>.
*Kořenový element – element '''html''' (značky <html> a </html>) reprezentuje celý dokument. Kořenový element je povinný, ale otevírací a ukončovací značka samotná povinná není (pokud tyto značky nebudou v těle dokumentu uvedeny, prohlížeč si je sám doplní podle kontextu).
*Kořenový element – element <code>html</code> (značky <code><html></code> a <code></html></code>) reprezentuje celý dokument. Kořenový element je povinný, ale otevírací a ukončovací značka samotná povinná není (pokud tyto značky nebudou v těle dokumentu uvedeny, prohlížeč si je sám doplní podle kontextu).
*Hlavička elementu – jsou to [[metadata]], která se vztahují k celému dokumentu. Definují např. název dokumentu, jazyk, kódování, klíčová slova, popis, použitý styl zobrazení. Hlavička je uzavřena mezi značky '''<head>''' a '''</head>'''. Element ''head'' je opět povinný, ale jeho otevírací a koncová značka povinná není, prohlížeč ji sám doplní podle kontextu.
*Hlavička elementu – obsahuje [[metadata]], která se vztahují k celému dokumentu. Definují např. název dokumentu, jazyk, [[znaková sada|kódování]], [[klíčové slovo|klíčová slova]], popis, použitý styl zobrazení. Hlavička je uzavřena mezi značky <code><head></code> a <code></head></code>. Element <code>head</code> je opět povinný, ale jeho otevírací a koncová značka povinná není, prohlížeč ji sám doplní podle kontextu.
*Tělo dokumentu – obsahuje vlastní text dokumentu. Vymezuje se značkami '''<body>''' a '''</body>'''. Element ''body'' je povinný, ale jeho otevírací a koncová značka povinná není, prohlížeč ji sám doplní podle kontextu.
*Tělo dokumentu – obsahuje vlastní text dokumentu. Vymezuje se značkami <code><body></code> a <code></body></code>. Element <code>body</code> je povinný, ale jeho otevírací a koncová značka povinná není, prohlížeč ji sám doplní podle kontextu.


=== Příklad zdrojového kódu ===
=== Příklad zdrojového kódu ===
Příklad '''HTML''' pro verzi 4.01:
Příklad HTML dokumentu ve verzi 4.01:
<pre>
<pre>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<html>
<!-- toto je komentář -->
<!-- toto je komentář -->
<head>
<head>
<title>Titulek stránky</title>
<title>Titulek stránky</title>
</head>
</head>
<!-- tělo dokumentu -->
<!-- tělo dokumentu -->
<body>
<body>
<h1>Nadpis stránky</h1>
<h1>Nadpis stránky</h1>
Řádek 90: Řádek 75:
</html>
</html>
</pre>
</pre>
''Tvoříme odkazy''
<pre>
<A HREF="http://cs.wikipedia.org/">"Wikipedia-priklad odkazu"</A>
</pre>
'''Vkládáme obrázek'''
''K přidání obrázku používáme tag IMG.''
<pre>
<IMG src="nazev_souboru.pripona">
</pre>
''Programovaný soubor poté bude přidán.''


=== Druhy značek ===
=== Druhy značek ===
Značky můžeme z hlediska významu rozdělit na tři základní skupiny:
Značky lze z hlediska významu rozdělit na tři základní skupiny:
*'''Strukturální značky''' jsou ty, které rozvrhují strukturu dokumentu. Příkladem jsou odstavce (&lt;p&gt;), nadpisy (&lt;h1&gt;, &lt;h2&gt;). Dodávají dokumentu formu.
;Strukturální značky
: rozvrhují strukturu dokumentu, příkladem jsou odstavce (<code>&lt;p&gt;</code>), nadpisy (<code>&lt;h1&gt;</code>, <code>&lt;h2&gt;</code>). Dodávají dokumentu formu.
;Popisné (sémantické) značky
*'''Popisné (sémantické) značky''' popisují povahu obsahu elementu. Příklad nadpis (<title>) nebo adresa (<address>). Současný trend je orientován právě na sémantické značky, které usnadňují automatizované zpracovávání dokumentů a vyhledávání informací v záplavě dokumentů na webu. Vyvrcholením této snahy je v současné době jazyk [[Extensible Markup Language|XML]].
: popisují povahu obsahu elementu, příkladem je nadpis (<code><title></code>) nebo adresa (<code><address></code>). Současný trend je orientován právě na sémantické značky, které usnadňují automatizované zpracovávání dokumentů a vyhledávání informací v záplavě dokumentů na webu. Vyvrcholením této snahy je v současné době jazyk [[Extensible Markup Language|XML]].
*'''Stylistické značky''' určují vzhled elementu při zobrazení. Typickým příkladem je značka pro tučné písmo (&lt;b&gt;). Tento druh značek se nedoporučuje používat, trendem je používání [[Cascading Style Sheets|kaskádových stylů]] oddělených od obsahu dokumentu. Problém je především v tom, že tyto značky jsou orientovány na obrazovku monitoru, problémy mohou nastat při používání dokumentu jiným způsobem - alternativní prohlížeče pro postižené (čtečky pro slepce), v mobilních zařízeních a podobně. Kaskádové styly umožňují definovat rozdílné zobrazení pro různá zařízení.
; Stylistické značky
: určují vzhled elementu při zobrazení, typickým příkladem je značka pro [[tučné písmo]] (<code>&lt;b&gt;</code>). Od tohoto druhu značek se postupně upouští, trendem je používání [[Cascading Style Sheets|kaskádových stylů]], které vzhled popisují odděleně od obsahu dokumentu. Mezi důvody pro neužívání těchto značek patří především to, že tyto značky jsou orientovány na prohlížení na [[monitor (obrazovka)|obrazovce počítače]], příliš se však nepočítá s používáním dokumentu jiným způsobem alternativní prohlížeče pro postižené (čtečky pro slepce), v mobilních zařízeních a podobně. Kaskádové styly umožňují definovat rozdílné zobrazení pro různá zařízení.


=== Parsování v prohlížečích ===
=== Parsování v prohlížečích ===
[[Webový prohlížeč|Webové prohlížeče]] jsou programy, jejichž účelem je prezentovat dokument na zobrazovacím zařízení – převážně monitoru počítače. Dokument je prohlížečem načítán a rozkládán ([[parsování|parsován]], syntaktická analýza) na jednotlivé elementy. Prohlížeč obsahuje tabulku značek, které podporuje. Moderní prohlížeče (Opera, Firefox) dokonce umožňují „vytvářet“ vlastní tagy a elementy a umožňují také jejich stylování pomocí Kaskádových stylů. Bohužel (či bohudík), Internet Explorer toto nedovoluje a obsah neznámých elementů zobrazí zcela normálně, bez stylu. I proto vlastní elementy nikdo nepoužívá.
[[Webový prohlížeč|Webové prohlížeče]] jsou [[počítačový program|programy]], jejichž účelem je prezentovat dokument na zobrazovacím zařízení – nejčastěji monitoru počítače. Dokument je prohlížečem načítán a prováděna jeho rozklad ([[syntaktická analýza]]) na jednotlivé elementy. Prohlížeč obsahuje tabulku značek, které podporuje. Moderní prohlížeče ([[Opera (prohlížeč)|Opera]], [[Mozilla Firefox]]) dokonce umožňují „vytvářet“ vlastní tagy a elementy a umožňují také jejich stylování pomocí kaskádových stylů. Jelikož však nejrozšířenější prohlížeč, [[Microsoft Internet Explorer]], toto nedovoluje a obsah neznámých elementů zobrazí zcela normálně, bez stylu, vlastní elementy se prakticky nepoužívají.


Každému elementu je poté přiřazen ''styl'' (způsob zobrazení). Styly mohou být uvedeny ve stylovém předpisu. Vlastnosti stylů, které nejsou předepsány, doplní prohlížeč podle implicitního stylu, který má zabudován. Některé prohlížeče umožňují uživateli implicitní styly definovat.
Každému elementu je poté přiřazen ''styl'' (způsob zobrazení). Styly mohou být uvedeny ve stylovém předpisu. Vlastnosti stylů, které nejsou předepsány, doplní prohlížeč podle implicitního stylu, který má zabudován. Některé prohlížeče umožňují uživateli implicitní styly definovat.


Novější prohlížeče pracují obecně ve dvou základních režimech:
Novější prohlížeče pracují obecně ve dvou základních režimech:
*Standardní režim – režim spíše podporující nové standardy;
*''Standardní režim'' – režim pracující přesně podle definovaných standardů, zaměřený zejména na nové standardy,
*''Quirk mód'' – režim zaměřený na [[zpětná kompatibilita|zpětnou kompatibilitu]], i pokud takové chování není v souladu se standardy.
*Quirk mód – nestandardní, zpětně kompatibilní režim.
Režimy zavedl Internet Explorer ve své páté verzi z důvodu zpětné kompatibility. Microsoft při vytváření nového prohlížeče chtěl, aby se v něm zobrazovaly správně stránky, které již existují, ale také nové stránky, psány podle standardů. Proto se kluci v Microsoftu rozhodli udělat dva režimy – Quirk (zpětně kompatibilní) a Standard (více dodržující standardy) – a jako přepínač zvolili doctype, protože většina starších stránek ho ani neobsahovala. Později toto chování částečně přebrala Mozilla a Opera, kde všas rozdíly mezi verzemi nejsou natolik markantní.
Tyto režimy chování zavedl Internet Explorer ve své páté verzi z důvodu zpětné kompatibility. [[Microsoft]] při vytváření nové verze prohlížeče chtěl, aby se v něm zobrazovaly správně stránky, které již existují, ale také nové stránky, které jsou psány podle standardů. To, jaký režim (a chování) prohlížeč zvolí, závisí především na uvedení direktivy <code><!DOCTYPE</code>, protože většina starších stránek ji vůbec neobsahuje. Později toto chování částečně přebrala Mozilla i Opera, kde však rozdíly mezi režimy nejsou natolik markantní. Existence nestandardního režimu je výsledkem vývoje, kdy si výrobci jednotlivých prohlížečů přizpůsobovali definici HTML podle svých potřeb a prohlížeče podporovaly nestandardní elementy a syntaxi. Řada těchto „vylepšení“ byla následně přejímána do standardů, některé však byly zase v dalších verzích vyřazeny.


=== Alternativní zařízení ===
Prohlížeče mají různé implicitní styly zobrazování a chovají se různě v ''quirk'' módu. Stejný dokument se tedy může v různých prohlížečích zobrazovat různě, rozdíly jsou i mezi verzemi prohlížeče stejného výrobce. Současné chování prohlížečů je výsledek vývoje, kdy si výrobci jednotlivých prohlížečů přizpůsobovali definici HTML podle svých potřeb a prohlížeče podporovaly nestandardní elementy a syntaxi. Řada těchto „vylepšení“ byla následně přejímána do standardů, a některé zase v dalších verzích vyřazeny.
Vzhledem k rozvoji jak na poli software, tak i hardware přibylo mnoho nových možností zpracování HTML dokumentů. Proto se pojem „prohlížeč“ stal zavádějícím (jsou např. i hlasové čtečky, či tiskárny) a [[W3C]] začalo používat termín ''user agent''. V tuto chvíli (konec roku 2007) ještě neexistuje jednotný český termín, používá se buď doslovný překlad „uživatelský agent“, nebo např. „interpret“, „interpretr“, „zařízení“ či jiné.

=== HTML vs XHTML ===

V současné době (konec roku 2007) se používají obě alternativy, mezi profesionály je však častější používání XHTML, který díky své striktnosti slibuje větší [[kompatibilita|kompatibilitu]] na mnoha [[Webový prohlížeč|prohlížečích]] a [[Operační systém|operačních systémech]]{{Chybí zdroj}}, také výrazně usnadňuje a zlepšuje práci s [[Extensible Markup Language|XML]] dokumenty. Avšak v současné době se HTML vyvíjí značně více a rychleji než XHTML (připravovaná verze [[HTML 5.0]]).{{Chybí zdroj}}


== Budoucnost HTML ==
== Budoucnost HTML ==
Vývoj jazyka HTML byl původně ukončen verzí 4.01. Dle W3C měl další vývoj psaní dokumentů na web patřit jazyku [[XHTML]] – následníkovi HTML, využívajícímu univerzální jazyk [[XML]]. Některým lidem se však vývoj okolo XHTML nezamlouval. Část z nich včetně některých tvůrců webových prohlížečů, jako například [[Mozilla Foundation]], [[Opera Software]] či [[Apple]], založila iniciativu [[WHATWG]], jejíž cílem bylo vytvořit novou verzi HTML, která se posléze začala označovat jako „HTML 5“.


[[7. březen|7. března]] [[2007]] W3C založilo novou pracovní skupinu HTML, jejímž cílem je v roce 2010 uvolnit specifikaci nové verze HTML. Po hlasování bylo určeno,<ref>[http://lists.w3.org/Archives/Public/public-html/2007May/0909.html W3C HTML WG: Results of HTML 5 text, editor, name questions]</ref> že nová verze ponese označení HTML&nbsp;5.0 a že zpočátku bude založena na specifikacích Web Applications&nbsp;1.0 a Web Forms&nbsp;2.0 z iniciativy WHATWG, které budou upravovány. Krom toho pracuje W3C dále i na specifikacích XHTML&nbsp;2.0 a [[XForms]], které původně považovala za jediný budoucí směr vývoje.
Vývoj jazyka '''HTML''' byl původně ukončen verzí 4.01. Dle W3C měl další vývoj psaní dokumentů na web patřit XHTML. Některým lidem se však vývoj okolo XHTML nezamlouval. Část z nich včetně některých tvůrců webových prohlížečů jako například [[Mozilla Foundation]], [[Opera Software]] či [[Apple]] založili iniciativu [[WHATWG]], jejíž cílem bylo vytvořit novou verzi HTML, která byla často označována jako „HTML 5“.

[[7. březen|7. března]] [[2007]] W3C založilo novou pracovní skupinu HTML, jejíž cílem je v roce 2010 uvolnit specifikaci nové verze HTML. Po hlasování bylo určeno<ref>[http://lists.w3.org/Archives/Public/public-html/2007May/0909.html W3C HTML WG: Results of HTML 5 text, editor, name questions]</ref>, že nová verze ponese označení HTML 5.0 a že zpočátku bude založena na specifikacích Web Applications 1.0 a Web Forms 2.0 z iniciativy WHATWG, které budou upravovány. Krom toho pracuje W3C dále i na specifikacích XHTML 2.0 a [[XForms]], které původně považovala za další směr vývoje.

== Poznámka k terminologii ==
Vzhledem k rozvoji jak na poli software, tak i hardware, přibylo mnoho nových možností zpracování HTML dokumentů. Proto se pojem „prohlížeč“ stal zavádějícím (jsou např. i hlasové čtečky, či tiskárny) a [[W3C]] začalo používat termín ''„user agent“''. V tuto chvíli (konec r. 2007) ještě neexistuje jednotný český termín, používá se buď doslovný překlad - uživatelský agent, nebo např. „interpret“, „interpretr“, „zařízení“ či jiné.


== Reference ==
== Reference ==
Řádek 139: Řádek 110:
*[[XHTML]]
*[[XHTML]]
*[[Hyper Text Transfer Protocol]]
*[[Hyper Text Transfer Protocol]]
*[[metadata]]
*[[HTML entita]]
*[[HTML entita]]
*[[HTML tagy]]
*[[HTML tag]]
*[[Znaková sada#Znakové sady a HTML|Znaková sada]]


== Externí odkazy ==
== Externí odkazy ==

Verze z 10. 12. 2007, 22:36

HyperText Markup Language, označovaný zkratkou HTML, je značkovací jazyk pro hypertext. Je jedním z jazyků pro vytváření stránek v systému World Wide Web, který umožňuje publikaci dokumentů na Internetu.

Jazyk je aplikací dříve vyvinutého rozsáhlého univerzálního značkovacího jazyka SGML (Standard Generalized Markup Language). Vývoj HTML byl ovlivněn vývojem webových prohlížečů, které zpětně ovlivňovaly definici jazyka.

Vývoj jazyka

V roce 1989 spolupracovali Tim Berners-Lee a Robert Caillau na propojeném informačním systému pro CERN, výzkumné centrum fyziky poblíž Ženevy ve Švýcarsku. V té době se pro tvorbu dokumentů obvykle používaly jazyky TeX, PostScript a také SGML. Berners-Lee si uvědomoval, že potřebují něco jednoduššího a v roce 1990 byl tedy navržen jazyk HTML a protokol pro jeho přenos v počítačové síti – HTTP (HyperText Transfer Protocol – přenosový protokol hypertextu). Zároveň také Tim Berners-Lee napsal první webový prohlížeč, který nazval WorldWideWeb.

V roce 1991 CERN zprovoznil svůj web. Současně organizace NCSA (National Center for Supercomputer Applications) vybídla Marca Andreessena a Erica Binu k vytvoření prohlížeče Mosaic; ten vznikl v roce 1993 ve verzích pro počítače IBM PC a Macintosh a měl obrovský úspěch. Byl to první prohlížeč s grafickým uživatelským rozhraním.

Následoval rychlý rozvoj webu, takže bylo nutné pro HTML definovat standardy.

Verze jazyka

Verze 0.9
Byla vydána zhruba v roce 1991. Nepodporuje grafický režim (verze, kterou vytvořil Tim Berners-Lee).
Verze 2.0
Zachycuje stav jazyka v polovině roku 1994. Standard vydala komunita IETF (Internet Engineering Task Force). Je to první verze, která odpovídá syntaxi SGML. Přidává k původní specifikaci interaktivní formuláře a podporu grafiky.
Verze 3.2
Byla vydána 14. ledna 1997 a zachycuje stav jazyka v roce 1996. Připravovaná verze HTML 3.0 nebyla nikdy přijata jako standard, protože byla příliš složitá a žádná firma nebyla schopna naprogramovat její podporu. Standard už vydalo konsorcium W3C, stejně jako následující verze. Přidává k jazyku tabulky, zarovnávání textu a stylové elementy pro ovlivňování vzhledu.
Verze 4.0
Byla vydána 18. prosince 1997. Do specifikace jazyka přibyly nové prvky pro tvorbu tabulek, formulářů a nově byly standardizovány rámy (frames). Tato verze se snaží dosáhnout původního účelu – prvky by měly vyznačovat význam (sémantiku) jednotlivých částí dokumentu, vzhled má být ovlivňován připojovanými styly. Některé prezentační elementy byly zavrženy.
Verze 4.01
Byla vydána 24. prosince 1999. Tato verze opravuje některé chyby verze předchozí.[1] Podle původního předpokladu se mělo jednat o poslední verzi, po které by se přešlo na XHTML.
Verze 5
7. března 2007 byla založena nová pracovní skupina HTML, jejíž cílem je vývoj nové verze HTML. V květnu 2007 bylo odhlasováno, že základem nové specifikace se stanou Web Applications 1.0 a Web Forms 2.0 ze specifikace WHATWG. Jako název nové specifikace bylo odhlasováno HTML 5.0 a specifikace by měla být hotova v roce 2010 (odtud ji začnou vývojáři webových aplikací používat, finalní verze zbavená všech chyb se však odhaduje až na rok 2022[2]).

Popis jazyka

Koncepce

Jazyk HTML je od verze 2.0 aplikací SGML. Je charakterizován množinou značek a jejich atributů definovaných pro danou verzi. Mezi značky se uzavírají části textu dokumentu a tím se určuje význam (sémantika) obsaženého textu. Názvy jednotlivých značek se uzavírají mezi úhlové závorky (< a >). Část dokumentu tvořená otevírací značkou, nějakým obsahem a odpovídající ukončovací značkou tvoří tzv. element (prvek) dokumentu. Například <strong> je otevírací značka pro zvýraznění textu a <strong>Červená Karkulka</strong> je element obsahující zvýrazněný text. Součástí obsahu elementu mohou být další vnořené elementy. Atributy jsou doplňující informace, které upřesňují vlastnosti elementu.

Značky (zvané tagy) jsou obvykle párové (v XHTML jsou párové všechny), přičemž koncové značka je shodná se značkou počáteční, jen má před názvem znak lomítko. Příklad pro označení odstavce:

<p>Text odstavce</p>

Některé značky jsou nepárové – nemají žádný obsah a nepoužívají koncovou značku. Příklad pro vykreslení vodorovné čáry:

<hr>

Tagy mohou obsahovat atributy, které popisují jejich vlastnosti nebo nesou jinou informaci. Příkladem může být odkaz (tag a), jehož atribut href říká, kam se uživatel po kliknutí na něj dostane (v tomto příkladu na stránku http://example.com):

<a href="http://example.com">text odkazu</a>

Jelikož je HTML aplikací SGML, existují i jiné, méně známé konstrukce pro tvoření elementů. Jedná se o tzv. zkrácené HTML zápisy:[3][4]

  • <element/Obsah/ je totéž jako <element>Obsah</element>
  • <element>Obsah</> je totéž jako <element>Obsah</element>
  • <el<el2>Obsah je totéž jako <el><el2>Obsah
  • <ul><li>Adam<>Božena</ul> je totéž jako <ul><li>Adam</li><li>Božena</li></ul>

Všechny tyto zápisy jsou sice podle normy validní a zcela ekvivalentní, ale žádný ze známých prohlížečů zkrácené verze nepodporuje, takže se nedoporučuje je používat.

Pro každou verzi existuje definice pravidel DTD (Document Type Definition). Od verze 4.01 musí být odkaz na deklaraci DTD v dokumentu uveden pomocí klíčového slova DOCTYPE. DTD definuje pro určitou verzi elementy a atributy, které lze používat.

Dokument může mimo značkování obsahovat další prvky:

  • Direktivy – začínají znaky <!, jsou určeny pro zpracovatele dokumentu (prohlížeč).
  • Komentáře – pomocné texty pro programátora, nejsou součástí obsahu dokumentu a nezobrazují se (prohlížeč je ignoruje). Příklad komentáře je uveden níže.
  • Kód skriptovacích jazyků.
  • Definice událostí a kód pro jejich obsluhu.

Struktura dokumentu

Dokument v jazyku HTML má předepsanou strukturu:

  • Deklarace DTD – je povinná až ve verzi 4.01, je uvedena direktivou <!DOCTYPE.
  • Kořenový element – element html (značky <html> a </html>) reprezentuje celý dokument. Kořenový element je povinný, ale otevírací a ukončovací značka samotná povinná není (pokud tyto značky nebudou v těle dokumentu uvedeny, prohlížeč si je sám doplní podle kontextu).
  • Hlavička elementu – obsahuje metadata, která se vztahují k celému dokumentu. Definují např. název dokumentu, jazyk, kódování, klíčová slova, popis, použitý styl zobrazení. Hlavička je uzavřena mezi značky <head> a </head>. Element head je opět povinný, ale jeho otevírací a koncová značka povinná není, prohlížeč ji sám doplní podle kontextu.
  • Tělo dokumentu – obsahuje vlastní text dokumentu. Vymezuje se značkami <body> a </body>. Element body je povinný, ale jeho otevírací a koncová značka povinná není, prohlížeč ji sám doplní podle kontextu.

Příklad zdrojového kódu

Příklad HTML dokumentu ve verzi 4.01:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
   <!-- toto je komentář -->
   <head>
      <title>Titulek stránky</title>
   </head>
   <!-- tělo dokumentu -->
   <body>
      <h1>Nadpis stránky</h1>
      <p>Toto je tělo dokumentu</p>
   </body>
</html>

Druhy značek

Značky lze z hlediska významu rozdělit na tři základní skupiny:

Strukturální značky
rozvrhují strukturu dokumentu, příkladem jsou odstavce (<p>), nadpisy (<h1>, <h2>). Dodávají dokumentu formu.
Popisné (sémantické) značky
popisují povahu obsahu elementu, příkladem je nadpis (<title>) nebo adresa (<address>). Současný trend je orientován právě na sémantické značky, které usnadňují automatizované zpracovávání dokumentů a vyhledávání informací v záplavě dokumentů na webu. Vyvrcholením této snahy je v současné době jazyk XML.
Stylistické značky
určují vzhled elementu při zobrazení, typickým příkladem je značka pro tučné písmo (<b>). Od tohoto druhu značek se postupně upouští, trendem je používání kaskádových stylů, které vzhled popisují odděleně od obsahu dokumentu. Mezi důvody pro neužívání těchto značek patří především to, že tyto značky jsou orientovány na prohlížení na obrazovce počítače, příliš se však nepočítá s používáním dokumentu jiným způsobem – alternativní prohlížeče pro postižené (čtečky pro slepce), v mobilních zařízeních a podobně. Kaskádové styly umožňují definovat rozdílné zobrazení pro různá zařízení.

Parsování v prohlížečích

Webové prohlížeče jsou programy, jejichž účelem je prezentovat dokument na zobrazovacím zařízení – nejčastěji monitoru počítače. Dokument je prohlížečem načítán a prováděna jeho rozklad (syntaktická analýza) na jednotlivé elementy. Prohlížeč obsahuje tabulku značek, které podporuje. Moderní prohlížeče (Opera, Mozilla Firefox) dokonce umožňují „vytvářet“ vlastní tagy a elementy a umožňují také jejich stylování pomocí kaskádových stylů. Jelikož však nejrozšířenější prohlížeč, Microsoft Internet Explorer, toto nedovoluje a obsah neznámých elementů zobrazí zcela normálně, bez stylu, vlastní elementy se prakticky nepoužívají.

Každému elementu je poté přiřazen styl (způsob zobrazení). Styly mohou být uvedeny ve stylovém předpisu. Vlastnosti stylů, které nejsou předepsány, doplní prohlížeč podle implicitního stylu, který má zabudován. Některé prohlížeče umožňují uživateli implicitní styly definovat.

Novější prohlížeče pracují obecně ve dvou základních režimech:

  • Standardní režim – režim pracující přesně podle definovaných standardů, zaměřený zejména na nové standardy,
  • Quirk mód – režim zaměřený na zpětnou kompatibilitu, i pokud takové chování není v souladu se standardy.

Tyto režimy chování zavedl Internet Explorer ve své páté verzi z důvodu zpětné kompatibility. Microsoft při vytváření nové verze prohlížeče chtěl, aby se v něm zobrazovaly správně stránky, které již existují, ale také nové stránky, které jsou psány podle standardů. To, jaký režim (a chování) prohlížeč zvolí, závisí především na uvedení direktivy <!DOCTYPE, protože většina starších stránek ji vůbec neobsahuje. Později toto chování částečně přebrala Mozilla i Opera, kde však rozdíly mezi režimy nejsou natolik markantní. Existence nestandardního režimu je výsledkem vývoje, kdy si výrobci jednotlivých prohlížečů přizpůsobovali definici HTML podle svých potřeb a prohlížeče podporovaly nestandardní elementy a syntaxi. Řada těchto „vylepšení“ byla následně přejímána do standardů, některé však byly zase v dalších verzích vyřazeny.

Alternativní zařízení

Vzhledem k rozvoji jak na poli software, tak i hardware přibylo mnoho nových možností zpracování HTML dokumentů. Proto se pojem „prohlížeč“ stal zavádějícím (jsou např. i hlasové čtečky, či tiskárny) a W3C začalo používat termín user agent. V tuto chvíli (konec roku 2007) ještě neexistuje jednotný český termín, používá se buď doslovný překlad – „uživatelský agent“, nebo např. „interpret“, „interpretr“, „zařízení“ či jiné.

Budoucnost HTML

Vývoj jazyka HTML byl původně ukončen verzí 4.01. Dle W3C měl další vývoj psaní dokumentů na web patřit jazyku XHTML – následníkovi HTML, využívajícímu univerzální jazyk XML. Některým lidem se však vývoj okolo XHTML nezamlouval. Část z nich včetně některých tvůrců webových prohlížečů, jako například Mozilla Foundation, Opera Software či Apple, založila iniciativu WHATWG, jejíž cílem bylo vytvořit novou verzi HTML, která se posléze začala označovat jako „HTML 5“.

7. března 2007 W3C založilo novou pracovní skupinu HTML, jejímž cílem je v roce 2010 uvolnit specifikaci nové verze HTML. Po hlasování bylo určeno,[5] že nová verze ponese označení HTML 5.0 a že zpočátku bude založena na specifikacích Web Applications 1.0 a Web Forms 2.0 z iniciativy WHATWG, které budou upravovány. Krom toho pracuje W3C dále i na specifikacích XHTML 2.0 a XForms, které původně považovala za jediný budoucí směr vývoje.

Reference

  1. Příloha A.1 ke specifikaci HTML 4.01 – popis změn mezi verzemi 4.0 a 4.01
  2. Jakub Šťastný: Kdy bude hotovo HTML 5?, Root.cz, 17. 8. 2007
  3. Lukáš Havrlant: Zkrácené HTML zápisy, 16. 6. 2006
  4. Kapitola B.3.7, Shorthand markup ve specifikaci HTML 4.01
  5. W3C HTML WG: Results of HTML 5 text, editor, name questions

Související články

Externí odkazy