HTML/Rozdíl mezi HTML a XHTML

Často bývá předmětem nekonečných hádek. Pokusím se o nezaujatost.

Souvislosti

editovat

HTML obecně je jazyk, který určuje sémantiku stránky. Lze jej kódovat dle pravidel SGML (poté se pro zmatky označuje HTML, případně staré HTML) nebo podle pravidel XML (poté se mu říká XHTML).

Podpora v prohlížečích

editovat

Starší verze nebo některé typy(mobily) prohlížečů neumí správně zobrazit XHTML. W3C tvrdí, že XHTML bude dopředně kompatibilní.

Kódování

editovat
Rozdíl HTML 4.01 XHTML 1.0
Značky a atributy V obou jsou stejné značky, atributy i povolené elementy. Následující rozdíly vycházejí z rozdílů mezi SGML a XML.
Uzavírání nepárových tagů SGML říká, že se nepárové tagy nekončí. Třeba <img src="aa.jpg" alt="aa"> je správný zápis. XML končí lomítkem na konci <img src="aa.jpg" alt="aa" />
Nepovinné začátky a konce v HTML je zápis <p>blabla<p>další odstavec<p>a konec</body> správně, vyhovující prohlížeč stránku musí zobrazit, proto validátor neoznámí chybu, ani varování. Obecně zápis <c>...<d>, pokud tag d nesmí být uvnitř tagu c znamená <c>...</c><d>.

SGML umožňuje nepovinné počáteční značky, například tag <body> nemusí mít počáteční značku, pokud dle definice musí být na určitém místě. (<html><head><title>ahoj</title></head><p>aaa : tag <p> nemůže být uvnitř pouze hlavního tagu <html>, proto se doplní body a vznikne ...</head><body><p>...). Mno nevím, kterému kodérovi to pomůže a kdo rád šetří znaky, ale SGML prohlížeč to musí přežvýkat.

XML nařizuje povinné uvádění všech značek a dovoluje prohlížečům stránku nezobrazit.
Reakce prohlížeče na chyby SGML tvrdí, že neznámý tag je prohlížečem ignorován a jiné druhy chyb by se měl prohlížeč snažit zobrazit. Nezobrazení SGML dokumentu je zapříčiněno větší chybou. XML tvrdí, že při každé chybě musí prohlížeč ukončit zpracování a oznámit chybu.
◄ HTML/Metatagy Rozdíl mezi HTML a XHTML HTML/Odkazy ►