Extensible HyperText Markup Language ali XHTML je označevalni jezik, ki ima enak namen kot HTML, vendar je usklajen s sintakso XML.

HTML

Cascading Style Sheets
Kodiranja
Dinamičen HTML
Pisave
Urejevalniki HTML
Elementi HTML
Unicode in HTML
Spletne barve
W3C
XHTML

Medtem ko je HTML različica SGML-a, zelo prilagodljivega označevalnega jezika, je XHTML prilagojen XML-u, strožji podmnožici SGML-a. Ker mora biti dokument XHTML tvorjen pravilno, ga lahko samodejno razčlenimo kar s preprostimi razčlenjevalniki XML, za razliko od HTML, ki potrebuje razmeroma zapleten, prizanesljiv in večinoma po meri narejen razčlenjevalnik. XHTML 1.0 je postal priporočilo inštituta World Wide Web Consortium (W3C) 26. januarja 2000, XHTML 1.1 pa 31. maja leto kasneje.

Verzije XHTML uredi

XHTML 1.0 uredi

Originalen XHTML W3C-standard, XHTML 1.0, je bil preprost prehod iz HTML 4.01 v XML. XHTML 1.0 se pojavlja v treh »različicah«, pri kateri se vsaka zgleduje po njeni vzporednici v HTML 4.01.

  • XHTML 1.0 Strict je enak HTML 4.01 Strict, vendar sledi sintaksnim pravilom XML.
  • XHTML 1.0 Transitional dovoljuje uporabo nekaterih pogosto uporabljenih etiket (tag) in elementov (attribute), ki se v XHTML 1.0 Strict ne pojavljajo, npr. <center>, <u>, <strike> in <applet>. Podpira tudi vse drugo, kar podpira XHTML 1.0 Strict, vendar vključuje elemente in atribute za stil in je priporočen za brskalnike, ki so nastali v času okoli leta 1990, saj imajo ti brskalniki težave s prikazovanjem CSS-predlog. [1]
  • XHTML 1.0 Frameset: Dovoljuje uporabo HTML-okvirjev (frames).

XHTML 1.1 uredi

Osnutek XHTML 2.0 uredi

Drugi člani v družini XHTML uredi

Deklaracija o vrsti dokumenta uredi

Da je dokument veljaven, mora vsebovati Deklaracijo o vrsti dokumenta (angleško Document Type Declaration), krajše tudi DOCTYPE. DOCTYPE napove brskalniku, kateri Deklaraciji o vrsti dokumenta (DTD), se dokument prilagaja. DOCTYPE mora po pravilu biti čisto na vrhu dokumenta, pred <html> in za <?xml version="1.0" ?>.

To je seznam najpogosteje uporabljenih XHTML deklaracij o vrsti dokumenta:

XHTML 1.0 Strict
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
XHTML 1.0 Transitional
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
XHTML 1.0 Frameset
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
XHTML 1.1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
XHTML 2.0

XHTML 2.0 (Avgust 2006) je v fazi razvijanja. Deklaracija o vrsti dokumenta bo izgledala nekako takole:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 2.0//EN"
"http://www.w3.org/MarkUp/DTD/xhtml2.dtd">

Pogoste napake uredi

Nekatere pogoste napake v XHTML so:

  • Prazne etikete, ki se ne zaključujejo (etikete, ki se v HTML 4 niso zaključevale)
    • Narobe: <br>
    • Pravilno: <br />
      Zapomnite si, da so vsi ti sprejemljivi v XHTML: <br></br>, <br/> in <br />. Starejši brskalniki, ki podpirajo samo HTML, podpirajo <br> in <br />. Uporaba <br /> da nekatere prednosti ter slabosti v združljivosti.
  • Spuščanje zapiralnih etiket
    • Narobe: <p>To je odstavek.<p>To je še en odstavek.
    • Pravilno: <p>To je odstavek.</p><p>To je še en odstavek.</p>
  • Nepravilno zaključevanje gnezdenih etiket (etikete morajo biti zaprte v obratnem zaporedju)
    • Narobe: <em><strong>To je neko besedilo.</em></strong>
    • Pravilno: <em><strong>To je neko besedilo.</strong></em>
  • Določeno ni alternativno besedilo pri slikah (uporaba atributa alt, ki pomaga, da so strani bolj prilagodljive uporabnikom, katerim brskalnik ne prikaže slik, pomaga pa tudi ljudem s posebnimi potrebami)
    • Narobe: <img src="/skins/common/images/poweredby_mediawiki_88x31.png" />
    • Pravilno: <img src="/skins/common/images/poweredby_mediawiki_88x31.png" alt="Podprto s strani MediaWiki"/>
    • Pravilno (XHTML 2.0): <img src="/skins/common/images/poweredby_mediawiki_88x31.png">Podprto s strani MediaWiki</img>
  • Pisanje besedilo direktno v telo (body) dokumenta (to ni napaka v XHTML 1.0 Transitional)
    • Narobe: <body>Dobrodošli na moji strani.</body>
    • Pravilno: <body><p>Dobrodošli na moji strani.</p></body> (ali katero drugo blok-etiketo kot p)
  • Spuščanje narekovajev okoli vrednosti atributa
    • Narobe: <td rowspan=3>
    • Pravilno: <td rowspan="3">
    • Pravilno: <td rowspan='3'>
  • Uporaba znaka & (ampresand) v besedilu (uporabite &amp;, za prikaz znaka &)
    • Narobe: <title>Avtomobili & tovornjaki</title>
    • Pravilno: <title>Avtomobili &amp; tovornjaki</title>
  • Uporaba znaka & (ampresand) v povezavah do virov (URL) (uporabite &amp;, za prikaz znaka &)
    • Narobe: <a href="index.php?stran=novice&stil=5">Novice</a>
    • Pravilno: <a href="index.php?stran=novice&amp;stil=5">Novice</a>
  • Uporaba velikih črk v imenu etiket ali atributov
    • Narobe: <BODY><P ID="ENA">Najboljša stran na svetu</P></BODY>
    • Pravilno: <body><p id="ENA">Najboljša stran na svetu</p></body>
  • Krajšanje atributov
    • Narobe: <textarea readonly>SAMO ZA BRANJE</textarea>
    • Pravilno: <textarea readonly="readonly">SAMO ZA BRANJE</textarea>
  • Uporaba document.write() v skriptih, namesto node creation methods
    • Narobe: document.write()
    • Pravilno: document.createElementNS(); document.getElementById().appendChild();
  • Uporaba komentarjev v vključenih skriptih in slogih. V XHTML je vsebina komentarjev brskalniku nevidna. Poglejmo si spodnji primer:
<style type="text/css">
 <!--
 p { color: green; }
 -->
</style>
V XHTML je ta koda enaka spodnji, saj je vsebina komentarja praktično odstranjena iz strukture dokumenta.
<style type="text/css">
</style>
Medtem ko HTML pri isti kodi ne ignorira teksta/kode med oznakami za komentar.
<style type="text/css">
 p { color: green; }
</style>
Namesto tega, bi moralo biti napisano z uporabo sintakse <![CDATA[ ]]>.
<style type="text/css">
<![CDATA[
 p { color: green; }
]]>
</style>

Vrsta dokumenta MIME uredi

Vrsta MIME Primer 1 Primer 2
application/xhtml+xml NAJ BI NAJ BI
application/xml NAJ NAJ
text/xml NAJ NAJ
text/html NAJ NAJ NE BI

Primer 1:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sl" lang="sl">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>Primer XHTML 1.0</title>
 <script type="text/javascript">
 <!--//--><![CDATA[//><!--
 function nalozipdf() {
   document.getElementById("pdf-object").src="http://www.w3.org/TR/xhtml1/xhtml1.pdf";
 }
 //--><!]]>
 </script>
 </head>
 <body onload="nalozipdf()">
 <p>This is an example of an
 <abbr title="Extensible HyperText Markup Language">XHTML</abbr> 1.0 Strict document.<br />
 <img id="validation-icon"
   src="http://www.w3.org/Icons/valid-xhtml10"
   alt="Valid XHTML 1.0 Strict" /><br />
 <object id="pdf-object"
   name="pdf-object"
   type="application/pdf"
   data="http://www.w3.org/TR/xhtml1/xhtml1.pdf"
   width="100%"
   height="500">
 </object>
 </p>
 </body>
</html>

Primer 2:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sl">
 <head>
 <title>Primer XHTML 1.0</title>
 <script type="text/javascript">
 <![CDATA[
 function nalozipdf() {
   document.getElementById("pdf-object").src="http://www.w3.org/TR/xhtml1/xhtml1.pdf";
 }
 ]]>
 </script>
 </head>
 <body onload="nalozipdf()">
 <p>This is an example of an
 <abbr title="Extensible HyperText Markup Language">XHTML</abbr> 1.0 Strict document.<br />
 <img id="validation-icon"
   src="http://www.w3.org/Icons/valid-xhtml10"
   alt="Valid XHTML 1.0 Strict" /><br />
 <object id="pdf-object"
   name="pdf-object"
   type="application/pdf"
   data="http://www.w3.org/TR/xhtml1/xhtml1.pdf"
   width="100%"
   height="500" />
 </p>
 </body>
</html>

Opombe:

  1. Funkcija »nalozipdf« je trik za Internet Explorer. Lahko se zamenja z dodajanjem <param name="src" value="http://www.w3.org/TR/xhtml1/xhtml1.pdf" /> v <object>.
  2. Etiketa img ne dobi atributa name v DTD-ju XHTML 1.0 Strict.

Zunanje povezave uredi