Syntaxe XHTML

Co je XHTML

XHTML je jiná, novější norma jazyka HTML. HTML jako takové už se nevyvíjí a zůstalo ve verzi HTML 4.01.

To X na začátku má znamenat eXtended, rozšířený.

Podstatné je, že podpora jazyka XHTML je v současných prohlížečích naprosto stejná jako podpora HTML (psáno 2004). Ačkoli se usuzuje, že v budoucnu bude podpora XHTML lepší než podpora HTML, na základě zkušeností s historickým vývojem prohlížečů není důvod se domnívat, že tomu tak vskutku bude.

Validita a význam XHTML

Tomu, že html/xhtml stránka splňuje normu (specifikaci, soulad s DTD), se říká validita. Mnozí autoři se validity kódu snaží dosáhnout. Validitu lze zkontrolovat validátorem. Současné prohlížeče ale zpravidla skousnou i dokument nevalidní a vykreslí jej správně. Jinak řečeno je to stejně jako v HTML: pokud uděláte chybu, nestřílí se z toho.

XHTML oproti HTML nic nového nepřináší. Žádné nové možnosti, jenom omezení.

Taky bych měl připomenout, že já osobně nemám XHTML moc rád, protože ho považuji za zbytečně omezující. Validitu taktéž. Účel světí prostředky, validita tím účelem není. Berte to prosím jako můj osobní názor. Konec mudrování.

Verze XHTML

XHTML se v praxi vyskytuje ve třech verzích:

Zatímco XHTML 1.0 transitional lze vcelku doporučit k používání, XHTML 1.0 striktní je velmi pracné a v XHTML 1.1 už je spousta věcí zakázána a jeho používání je pro značnou část autorů horor.

Specifikace

XHTML 1.0 na W3C (anglicky).

Specifikace XHTML 1.1 (anglicky), tamtéž.

Doctype XHTML 1.0

<!DOCTYPE html
     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<!DOCTYPE html
     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Nahlédnutím do odkazovaných souborů dtd se můžete podrobně seznámit s tím, které tagy a atributy jsou v dané verzi přípustné (stačí pochopit, jak je to DTD psané).

Doctype pro XHTML 1.1

<!DOCTYPE
 html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

Výklad DTD (anglicky)

Problémy s DTD a XML deklarací

Správně by HTML soubor měl začínat XML deklarací. Např. takto:

<?xml version="1.0" encoding="iso-8859-2"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >

Trochu lapálie je v tom případě s tím, že jakmile soubor nezačíná přímo zápisem <!doctype, nepozná Internet Explorer, že má stránku vykreslovat ve striktním módu. Neumím to řešit.

Další veselé chvilky začínají, když XHTML soubor s XML prologem <?xml version="1.0" ?> generujete přes PHP. PHP si myslí, že zápis <?XML patří jemu, a začne blbnout. To se řeší třeba tak, že se nechá ta XML deklarace vypsat pomocí příkazu echo:

<? echo "<?XML version=\"1.0\" encoding=\"iso-8859-2\"?" . ">" ?>

Nebo ještě lepší je tam ten xml prolog nedávat, čímž sice vzniká nesprávně kódovaný dokument, ale zase to funguje i v Exploreru 6 se standardním vykreslováním.

Rozdíly XHTML oproti HTML

Tagy a atributy jsou malými písmeny

Nepárové tagy končí lomítkem

Párové tagy jsou párové povinně

Všechny atributy jsou v uvozovkách

Všechny atributy musejí mít hodnotu

Příklad

Všechno se píše malými písmeny a ty značky, kterým se říká "párové", musí být uzavřené. Všechny atributy musí mít přiřazenu hodnotu, všechny hodnoty atributů musí být v uvozovkách (i čísla).

Například takovýhle HTML kód:

<select multiple>
<option>opt1
<option>opt2
</select>
<img src="x.jpg" width=10 height=10>

Se v XHTML zapíše takhle:

<select multiple="multiple">
<option>opt1</option>
<option>opt2</option>
</select>
<img src="x.jpg" width="10" height="10" />

Zápis javaskriptu

Skript je v XHTML chápán jako beztvarý kus dokumentu. Musí se obalit zápisem CDATA. Zápis CDATA je potřeba ještě javascriptově zakomentovat.

<script type="text/javascript">
/* <![CDATA[ */
samotný zápis javascriptu
/* ]]> */
</script>

Uvnitř skriptu se nesmí použít sekvence </x, kde x je písmenko. Potřebujete-li ji zapsat, zapisujte ji takto: <\/x. Zápis \/ je jenom escapovaná verze lomítka.

Externí skript se naštěstí zapisuje stejně jako v HTML a uvnitř externího skriptu není žádné omezení.

<script type="text/javascript" src="externi-skript.js"></script>

Zápis interního stylu

To samé jako javascript. Přes kopírák - zapoznámkované CDATA. Ale ve většině případů to není nutné, pokud v zápisu stylu nepoužíváte žádné problematické znaky jako třeba & > a <. Zejména pozor na znak > (selektor dítěte).

Na začátku je XML deklarace (prolog)

<?xml version="1.0" encoding="iso-8859-2"?>

<?xml version="1.0" encoding="windows-1250"?>

<?xml version="1.0" encoding="UTF-8"?>

Samozřejmě záleží na použitém kódování. Pozor, tento zápis nenahrazuje meta tag pro kódování češtiny (zejména Google pak může mít problémy). V praktickém použití na webu se tento prolog většinou vypouští, protože (ačkoli tak vzniká neplatný dokument) Explorer chce mít na prvním řádku doctype.

Co platilo už HTML, to platí v XHTML

Dobře strukturovaný dokument

Entitování ampersandu v URL

 

 

 

Stránka není dokončená.

 

o tvorbě, údržbě a zlepšování internetových stránek

Návody HTML CSS JavaScript Články Ostatní

HTML tagy Abecedně Příklady HTML tahák

Jak psát web píše Yuhů, Dušan Janovský. Kontakt. Poslední aktualizace 13. února 2005.