XHTML segédanyag


Az XHTML bemutatása


Mi az az "XHTML"?


Mit érdemes már most tudni?

A WWW és a HTML ismerete fontos, illetve a weblapkészítés alapjainak ismerete.


Az XHTML egy webes szabvány.

Az XHTML 1.0-s verziója 2000. január 26-án lett W3C ajánlás, az 1.1-es pedig 2001. május 31-én.

Egy W3C ajánlás azt jelenti, hogy a specifikáció stabil, a W3C tagsága átnézte, és a specifikáció mostanra már a világháló egy szabványa lett.


XHTML - miért?


Az XHTML a HTML és az XML (eXtensible Markup Language) ötvözése.

Az XTHML (1.0) tartalmazza a HTML 4.01 összes elemét az XML szintaktikájával (írásmódával).


Miért pont XHTML?

Mostanra elérte az Világháló azt a pontot, amikor nagyon sok weboldal tartalmaz "rossz", hibás HTML "kódot".

A következő kód jól jelenik meg a böngészőben, bár nem követi a HTML szabványt:

<html>
<head>
<title>This is bad HTML</title>
<body>
<h1>Bad HTML
</body>

Az XML egy olyan jelölő nyelv, melyben minden pontosan definiált és egyértelmű, így egy "jól formázott" dokumentumot kapunk.

Az XML adatok tárolására terveztetett, a HTML meg adatok megjelenítésére.

A mai piac tág, sokféle böngésző létezik, ezek egy része asztali vagy mobil számítógépeken fut, mások mobiltelefonon, vagy PDA-n (tenyérszámítógépen) futnak. Utóbbiaknak nincs elég erőforrásuk, hogy a hibás HTML oldalakat értelmezhessék.

Így a HTML és az XML-t és erősségüket ötvözve egy olyan jelölő nyelvet kapunk, amelyik ma is használható, és a jövőben is az lesz - az XHTML-t.

Az XHTML-t olvass egy egy XML-t ismerő eszköz, ÉS amíg a világ többi része nem frissít XML-t támogató böngészőre, addig az XHTML megadja a lehetőséget "jólformázott" dokumentumok készítésére most is, melyek működnek az összes böngészővel, és visszafele kompatibilisak!!!


Az XHTML és a HTML közti különbségek


Könnyen felkészülhetsz az XHTML-re, ha szigorú HTML-t írsz (3 html fajta van).


Felkészülés az XHTML-re

Az XHTML a HTML következő generációja, azonban beletelik valamennyi időbe, amíg a böngészők és egyéb szoftverek felkészülnek rá.

Néhány dolgot megtehetzs a felkészüléshez. Ahogy ebből az anyagból láthatod majd, az XHTML nem nagyon különbözik a HTML 4.01-től, tehát a dokuementum HTML 4.01 szabványnak megfelelő alakra hozása egy jó kezdés.

Továbbá már MOST el kell kezdened kisbetűs HTML címkéket használnod, és SOHA nem engedni ama rossz szokásnak, hogy lehagyd a záró címkéket, pl a </p>-t.

Kellemes kódolást!


A legfontosabb különbségek


Az elemeknek egymásba ágyazva kell szerepelniük

A HTML-ben helytelenül fel lehet cserélni elemeket, pl így:

<b><i>This text is bold and italic</b></i>

XHTML-ben ezeknek muszály helyes sorrendben szerepelniük:

<b><i>This text is bold and italic</i></b>

Megjegyzés: egy gyakori hiba egymásba ágyazott listák esetén az, hogy elfeljtik a belső listát li elembe tenni, valahogy így

<ul>
  <li>Kávé</li>
  <li>Tea
    <ul>
      <li>Fekete tea</li>
      <li>Zöld tea</li>
    </ul>
  <li>Tej</li>
</ul>

Ugyanez helyesen:

<ul>
  <li>Kávé</li>
  <li>Tea
    <ul>
      <li>Fekete tea</li>
      <li>Zöld tea</li>
    </ul>
  </li>
  <li>Tej</li>
</ul>

Figyeljük meg, hogy egy </li> címkét tettünk a </ul> címke után a "helyes" kódban.


A dokumentum jól formázott kell, hogy legyen

Minden XHTML elemnek a <html> gyökérelemben kell lennie. Minden egyéb elemnek lehet al (gyerek) eleme. Az al-elemeknek párokban kell lenniük és helyesen ágyazódniuk a szölő elembe. Az alap dokumentumstruktúra az alábbi:

<html>
<head> ... </head>
<body> ... </body>
</html>

A címkenevek kisbetűsek

Ez azért van, mert az XHTML egy XML alkalmazás. Az XML megkülönbözteti a kis-és nagybetűket. Az olyan címkék, mint például a <br> és a <br> különböző címkékként értelmezettek.

Tehát a következő példa hibás.

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

Ez helyes:

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

Minden XHTML elemet le kell zárni

Minden nemüres elemnek rendelkeznie kell lezáró elemmel is.

Hibás:

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

Helyes:

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

Az üres elemeket is le kell zárni

Az üres elemek után is lennie kell lezáró elemnek, vagy pedig a nyitó elemnek a követekzővel kell végződnie: />.

Hibás:

Ez egy sortörés<br>
Itt van egy vízszintes vonal:<hr>
Itt pedig egy kép: <img src="happy.gif" alt="Happy face">

Helyes:

Ez egy sortérés<br />

Itt van egy vízszintes vonal:<hr />
Itt pedig egy kép: <img src="happy.gif" alt="Happy face" />

FONTOS Kompatibilitási megjegyzés:

Ahhoz, hogy az XHTML oldalad kompatibilis legyen a mai böngészőkkel, egy extra szóközt kell betenned a "/" szimbólum előtt, ehhez hasonlóan: <br />, és ehhez: <hr />. 


XHTML szintakszis


XHTML írás tiszta, helyes HTML kódot igényel


Néhány további XHTML szintaktikai szabály


Az attribútumok kisbetűsek

Hibás:

<table WIDTH="100%">

Helyes:

<table width="100%">

Attribútumrövidítés tilos

Hibás:

<dl compact>
<input checked>
<input readonly>
<input disabled>
<option selected>
<frame noresize>

Helyes

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

Itt egy lista a rövidített attribútumokról HTML-ben, s hogy hogyan kell szerepelniük XHML-ben. A harmadik oszlop azt mondja meg, hogy mely XHTML változatokban lehet használni az adott attribútumot:

HTML XHTML  HTML 4.01 Strict / XHTML 1.0 Strict / XHTML 1.1
compact compact="compact" Nem
checked checked="checked" Igen
declare declare="declare" Igen
readonly readonly="readonly" Igen
disabled disabled="disabled" Igen
selected selected="selected" Igen
defer defer="defer" Nem
ismap ismap="ismap" Igen
nohref nohref="nohref" Igen
noshade noshade="noshade" Nem
nowrap nowrap="nowrap" Nem
multiple multiple="multiple" Igen
noresize noresize="noresize" XHTML 1.0 Frameset, XHTML 1.1, HTML 4.01 Frameset

Az id attribútum helyettesíti a name attribútumot

HTML 4.01 egy "name" attribútumot definiál az alábbi címkékhez: applet, frame, iframe, img, és map. XHTML 1.0-ban a "name" attribútum elavult, XHTML 1.1-ben nem létezik. Használjuk helyette az "id"-t.

Hibás:

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

Helyes:

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

Megjegyzés: A régebbi böngészők miatt egy ideig érdemes az "id" és a "name" attribútumot együttesen használni, azonos névvel, ilyen formában:

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

FONTOS kompatibilitási megjegjegyzés:

Hogy az XHTML oldal biztosan menjen minden (mai) webböngészővel, egy extra szóközte kell hagyni a "/" karakter előtt.


A lang attribútum

A lang attribútum alkalmazható szinte minden XHTML elemben. Az elem tartalmának nyelvét tartalmazza.

Ha egy elemben szerepel a lang attirbótum, xml:lang attribútumnak is ott kell lennie. Példa erre:

<div lang="no" xml:lang="no">Heia Norge!</div>

Megjegyzés: a lang attribútum nem létezik az XHTML 1.1-ben, helyette az xml:lang attribúmot lehet használni.


Kötelező XHTML elemek

Minden XHTML dokumentumnak rendelkeznie kell egy DOCTYPE meghatározással. A html, head és body elemeknek jelen kell lenniük, továbbá a title-nek is lennie kell a head elemben.

Ez a minimális XHTML dokumentum sablon:

<!DOCTYPE Doctype ide kerül>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>A cím helye</title>
</head>
<body>
A törzs szövegének helye
</body>
</html>

Megjegyzés: A DOCTYPE deklaráció nem része magának az XHTML dukumentumnak. Nem egy XHTML elem, és nem lehet lezáró címkéje.

Megjegyzés: Az xmlns attribútum a html elemen belül kötelező XHTML-ben. Ennek ellenére a validator.w3.org-on található ellenőrző nem jelzi ennek hiányát az XHTML dokumentumban. Ennek oka az, hogy az "xmlns=http://www.w3.org/1999/xhtml" egy rögzített érték, és akkor is hozzáadódik a <html> címkéhez, ha az nem tartalmazza.

Az XHTML dokumentumtípus leírásáról a következő fejezetben lesz szó.


XHTML DTD


Az XHTML 1.0 szabvány 3 dokumentumtípus-definíciót határoz meg, az XHTML 1.1 pedig egyet.

A leggyakoribb az XHTML 1.0 Transitional.


A <!DOCTYPE> kötelező.

Egy XHTML dokumentum 3 fő részből áll:

Az alapvető dokumentumstruktúra az alábbi:

<!DOCTYPE ...>
<html>
<head>
<title>... </title>
</head>
<body> ... </body>
</html>

A DOCTYPE deklatáció mindig az XHTML dukumentum első sorában kell lennie (vagy ott kezdpdnie).


Egy XHTML példa

Ez egy egyszerű (minimális) XHTML dokumentum:

<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>egyzerű dokumentum</title>
</head>
<body>
<p>Egy egyszerú bekezdés</p>
</body>
</html>

A DOCTYPE deklaráció meghatározza a dokumentum típusát:

<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

A dokumentum további része HTML-szerűen néz ki:

<html>
<head>
<title>egyzerű dokumentum</title>
</head>
<body>
<p>Egy egyszerű bekezdés</p>
</body>
</html>

A 4 Dokumentumtípus Definíció (DTD)

Jelenleg 3 XHTML 1.0 és egy XHTML 1.1 dokumentumtípus van:


Az XHTML 1.0 három XML dokumetumtípust határoz meg, melyekd három DTD-nek felenek meg: Strict, Transitional, és Frameset. Az XHTML 1.1 viszont csak egyet.

XHTML 1.0 Strict

<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Akkor használd, ha igazán tiszta jelölést akarsz, mellőzve minden megjelenítési zűrt. Használd együtt a Cascading Style Sheet-tel (stíluslapokkal).

XHTML 1.0 Transitional

<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Ezt akkor használd, ha szükséged van a HTML megjelenítési tulajdonságaira, s ha olyan böngészőket is támogatni akarsz, mely nem támogat stíluslapokat.

XHTML 1.0 Frameset

<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

Ezt akkor használd, ha HTML kereteket (frames) akarsz használni, hogy több keretre bontsd a böngésző ablakát.

XHTML 1.1

<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

Ez a legújabb változata az XHTML nyelvnek. Az XHTML 1.0 Strict továbbfejlesztése (moduláris változata), amely már egyáltalán nem togatja a HTML Frame-k használatát.


Fordította: Tóth László Attila (panther@elte.hu)


Valid XHTML 1.1! Valid CSS!

Erededeti, angol változat: http://www.w3schools.org/xhtml/.