Extensible HyperText Markup Language aliXHTML jeoznačevalni jezik, ki ima enak namen kotHTML, vendar je usklajen s sintaksoXML.
Medtem ko je HTML različicaSGML-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 narejenrazčlenjevalnik. XHTML 1.0 je postalpriporočiloinštitutaWorld Wide Web Consortium (W3C)26. januarja2000, XHTML 1.1 pa31. maja leto kasneje.
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 sledisintaksnimpravilom 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 leta1990, saj imajo ti brskalniki težave s prikazovanjemCSS-predlog.[1] - XHTML 1.0 Frameset: Dovoljuje uporabo HTML-okvirjev (frames).
Da je dokument veljaven, mora vsebovatiDeklaracijo o vrsti dokumenta (angleškoDocument Type Declaration), krajše tudiDOCTYPE. DOCTYPE napove brskalniku, kateriDeklaraciji 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 (Avgust2006) je v fazirazvijanja. 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">
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 kotp
)
- Spuščanje narekovajev okoli vrednosti atributa
- Narobe:
<td rowspan=3>
- Pravilno:
<td rowspan="3">
- Pravilno:
<td rowspan='3'>
- Uporaba znaka & (ampresand) v besedilu (uporabite
&
, za prikaz znaka &)- Narobe:
<title>Avtomobili & tovornjaki</title>
- Pravilno:
<title>Avtomobili & tovornjaki</title>
- Uporaba znaka & (ampresand) v povezavah do virov (URL) (uporabite
&
, za prikaz znaka &)- Narobe:
<a href="index.php?stran=novice&stil=5">Novice</a>
- Pravilno:
<a href="index.php?stran=novice&stil=5">Novice</a>
- Uporaba velikih črk v imenu etiket ali atributov
- Narobe:
<BODY><P>Najboljša stran na svetu</P></BODY>
- Pravilno:
<body><p>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, namestonode 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 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"><htmlxmlns="http://www.w3.org/1999/xhtml"xml:lang="sl"lang="sl"><head><metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/><title>PrimerXHTML1.0</title><scripttype="text/javascript"><!--//--><![CDATA[//><!-- function nalozipdf() { document.getElementById("pdf-object").src="http://www.w3.org/TR/xhtml1/xhtml1.pdf"; } //--><!]]></script></head><bodyonload="nalozipdf()"><p>Thisisanexampleofan<abbrtitle="Extensible HyperText Markup Language">XHTML</abbr>1.0Strictdocument.<br/><imgid="validation-icon"src="http://www.w3.org/Icons/valid-xhtml10"alt="Valid XHTML 1.0 Strict"/><br/><objectid="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"><htmlxmlns="http://www.w3.org/1999/xhtml"xml:lang="sl"><head><title>PrimerXHTML1.0</title><scripttype="text/javascript"><![CDATA[ function nalozipdf() { document.getElementById("pdf-object").src="http://www.w3.org/TR/xhtml1/xhtml1.pdf"; } ]]></script></head><bodyonload="nalozipdf()"><p>Thisisanexampleofan<abbrtitle="Extensible HyperText Markup Language">XHTML</abbr>1.0Strictdocument.<br/><imgid="validation-icon"src="http://www.w3.org/Icons/valid-xhtml10"alt="Valid XHTML 1.0 Strict"/><br/><objectid="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:
- Funkcija »nalozipdf« jetrik za Internet Explorer. Lahko se zamenja z dodajanjem
<param name="src" value="http://www.w3.org/TR/xhtml1/xhtml1.pdf" />
v<object>
. - Etiketa
img
ne dobi atributaname
v DTD-juXHTML 1.0 Strict.