Az XHTML nyelvet a HTML 4 leváltására hozták létre egy évtizede, de ez nem terjedt el a gyakorlatban. A HTML 5 jelenlegi fejlődésének fényében úgy tűnik, hogy nem is fogunk vele a jövőben sokat találkozni. Ezt azonban csak később tudhatjuk meg. Nem felesleges azonban, ha tudunk a következő néhány alapelvről. Sőt, akár még hasznos is lehet az alkalmazásuk. A következő sorokban néhány pontban megnézzük, miben tér el egy XHTML dokumentum a HTML-től.

Egymásba ágyazás

Az elemek csak megfelelően egymásba ágyazva és mindig lezárva lehetnek.

A következő példában az egymásba ágyazással van probléma:

<b><i>Ez egy félkövér és dőlt szöveg</b></i>

A helyes megoldás:

<b><i>Ez egy félkövér és dőlt szöveg</i></b>

A tagok neveit kisbetűvel kell írni

A tagok neveit kisbetűvel kell írni, ezért a következő hibás:

<BODY>
  <P>Ez egy bekezdés.</P>
</BODY>

A helyes változat:

<body>
  <p>Ez egy bekezdés.</p>
</body>

Elemek lezárása

A HTML elemeket le kell zárni. Hibás:

<p>Ez egy bekezdés.
<p>Ez egy másik bekezdés.

A helyes:

<p>Ez egy bekezdés.</p>
<p>Ez egy másik bekezdés.</p>

Záró pár nélküli elemek

Záró pár nélküli elemek esetén is le kell zárni. Itt azonban egy rövidített írásmód is alkalmazható:

Sortörés<br />

Elválasztó vonal<hr />

Kép <img src="happy.gif" alt="Happy face" />

A / előtti szóköz csak a visszafele kompatibilitás miatt kell, az XHTML nem igényli. Tehát azért kell szóköz, hogy a csak HTML-t ismerő böngészők is meg tudják jeleníteni az oldalt.

A tulajdonság-értékeket mindig idézőjelbe kell tenni

Ez praktikus HTML-nél is, ha a tulajdonság értéke pl. szóközt tartalmaz. XHTML-ben azonban mindig kötelező:

<table width="100%">

A tulajdonságok kötelezően tartalmaznak értéket is

Ha a HTML nem ír elő értéket (vagyis a tulajdonság lényegében logikai jelzőként működik), akkor az érték megegyezik a tulajdonság nevével.

<input checked="checked" />
<input readonly="readonly" />
<input disabled="disabled" />
<option selected="selected" />
<frame noresize="noresize" />

A name tulajdonság helyett az id használandó

Hibás tehát:

<img src="picture.gif" name="kep" />

Helyes:

<img src="picture.gif" id="kep" />

A régebbi böngészőkkel való kompatibilitás miatt mindkettőt is szokták alkalmazni:

<img src="picture.gif" id="kep" name="kep" />