XHTML
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 |
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
urediXHTML 1.0
urediOriginalen 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
urediOsnutek XHTML 2.0
urediDrugi člani v družini XHTML
urediDeklaracija o vrsti dokumenta
urediDa 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
urediNekatere 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.
- Narobe:
- 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>
- Narobe:
- 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>
- Narobe:
- 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>
- Narobe:
- 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
)
- Narobe:
- Spuščanje narekovajev okoli vrednosti atributa
- Narobe:
<td rowspan=3>
- Pravilno:
<td rowspan="3">
- Pravilno:
<td rowspan='3'>
- Narobe:
- Uporaba znaka & (ampresand) v besedilu (uporabite
&
, za prikaz znaka &)- Narobe:
<title>Avtomobili & tovornjaki</title>
- Pravilno:
<title>Avtomobili & tovornjaki</title>
- Narobe:
- 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>
- Narobe:
- 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>
- Narobe:
- Krajšanje atributov
- Narobe:
<textarea readonly>SAMO ZA BRANJE</textarea>
- Pravilno:
<textarea readonly="readonly">SAMO ZA BRANJE</textarea>
- Narobe:
- Uporaba
document.write()
v skriptih, namesto node creation methods- Narobe:
document.write()
- Pravilno:
document.createElementNS(); document.getElementById().appendChild();
- Narobe:
- 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[ ]]>
.
- Namesto tega, bi moralo biti napisano z uporabo sintakse
<style type="text/css"> <![CDATA[ p { color: green; } ]]> </style>
Vrsta dokumenta MIME
urediVrsta 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:
- 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>
. - Etiketa
img
ne dobi atributaname
v DTD-ju XHTML 1.0 Strict.
Zunanje povezave
uredi- Spletna stran označevalnih jezikov W3C
- XHTML 1.0 specifikacija
- XHTML 1.1 specifikacija
- W3C potrjevalnik veljavnosti dokumentov (Validator)