• Nem Talált Eredményt

A DOCTYPE (dokumentumtípus) definiálása

4. A HTML alapjai

4.2.6 A DOCTYPE (dokumentumtípus) definiálása

Az XHTML ereje az egyszerű szabályokban és a könnyen követhető irány-elvekben rejlik. Mint már fentebb is említésre került a korábbi HTML verzióknál jóval szigorúbbak ezen leírónyelv szabályai. Azáltal, hogy a szabályok szigorúb-bak, sokkal egyértelműbb a kódszerkesztés és sokkal egyértelműbb azok értel-mezése is a böngészők számára.

A HTML 4.01, az XHTML 1.0 és a HTML5 nyelvű dokumentumok mindig a DOCTYPE elemmel kezdődnek, amelyben a dokumentum típusa (kódolási mód-ja) adandó meg, ez a böngésző számára leírja, hogy az miként értelmezze az adott dokumentumot. Ebből a kódrészletből tudják meg a dokumentumot meg-jelenítő böngészők, hogy milyen érvényességellenőrző szolgáltatásokkal ellenő-rizendő a kód, és hogy az adott dokumentum valóban megfelel-e a megadott dokumentumtípus szabályainak. A HTML 4.01 és az XHTML 1.0 esetében három különböző DOCTYPE definíció létezik, mindhármat más DTD (Dokumentum Típus Definíció) írja le. Az XHTML 1.0 esetében erről részletes információk talál-hatóak az alábbiakban. A HTML5 szabványban egyféle létezik, amely a követe-ző: <!DOCTYPE html>. A DOCTYPE kifejezést mindig csupa nagybetűvel írjuk.

A HTML alapjai 57

A DTD dokumentumtípus megadása XHTML 1.0 leírónyelvben

Az XHTML különféle típusú dokumentumok megírását teszi lehetővé.

Minden típus külön szabályrendszerrel rendelkezik. Az egyes típusokhoz tartozó szabályokat ún. DTD-kben (Documentum Type Definition), magyarul dokumen-tumtípus meghatározásokban írják le. Az XHTML-ek DOCTYPE bejegyzéseiben tehát azt is közöljük, hogy a dokumentumban melyik DTD előírást követtük a kód megírásakor. A weboldalak kódjai a helyes DOCTYPE típusú deklaráció nél-kül nem érvényesíthetőek.

Az XHTML 1.0 három DTD-t kínál, azaz három féle DOCTYPE bejegyzés léte-zik a leírónyelv esetében, ezek alatt röviden megfogalmazva megtalálható, hogy mikor melyiket szerencsés választani:

7. XHTML 1.0 Transitional (Átmeneti XHTML 1.0):

1 <!DOCTYPE html PUBLIC „-//W3C//DTD XHTML 1.0 Transitional//EN”

„http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>

Ez akkor használatos, amikor webszabványra térünk át és néhány elavult HTML tag még található a kódban elvétve, vagy amikor mások is hozzáférhet-nek és módosíthatják a kódunkat, azaz beleírhatnak nem a szabványnak megfe-lelő részleteket. Amiatt kell ez esetben megadni, hogy a régebbi HTML paran-csok is értelmezve legyenek.

8. XHTML 1.0 Strict (Szigorú XHTML 1.0):

2 <!DOCTYPE html PUBLIC „-//W3C//DTD XHTML 1.0 Strict//EN”

„http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>

Akkor érdemes használni, amikor tiszta, jelentésjelölő kódot készítünk olyan tárhelyen, ahol nem ír bele senki és semmilyen program kódrészeket.

9. XHTML 1.0 Frameset (Keretvázas XHTML 1.0):

3 <!DOCTYPE html PUBLIC „-//W3C//DTD XHTML 1.0 Frameset//EN”

„http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd”>

Abban az esetben lehetne ezt használni, amikor a frameset szó szerepel a kódban, de nehéz elképzelni, hogy ma bárki is készít még frames szerkezetű weboldalt.

Mikor, melyik DOCTYPE definíciót érdemes használni XHTML 1.0 ese-tén?

A kérdés tehát pontosabban az, hogy mikor használjuk az átmeneti (tranzisional) és mikor a szigorú (strict) típust. A harmadik, frameset (keretvá-zas) típus nagyon nem használatos forma már napjainkban.

Strict

Mindenképpen a szigorú változatot érdemes használni, amennyiben tudjuk követni a szigorú szabályokat a teljes munkafolyamat során, ennek feltétele az, hogy csak mi férhessünk hozzá és felügyeljük a kódokat, azaz biztosak legyünk abban, hogy más szerkesztők vagy szabványokat nem követő tartalomkezelő rendszerek nem módosítanak a kódokon. Jó, ha a kódok csak felépítéstükröző (szerkezeti) és jelentésleíró (szemantikus) elemeket tartalmaznak, olyat nem, ami a külalakkal/külső megjelenéssel vagy a weboldal működésével foglalkozik.

Ez utóbbi azt jelenti, hogy a külalak és megjelenítés megvalósítását kizárólag CSS-sel, a működést pedig kizárólag a háttérben futó parancsfájlokkal oldjuk meg.

Tehát ne szerepeljen a kódunkban például <font> tag a karakterek formá-zására, ne szerepeljenek a kódban elavult elemek, mint például target attribú-tum vagy a <body> tagnek a bgcolor és textcolor attribúattribú-tuma, stb. Ne táblázat-tal legyen megvalósítva az oldalnak a felépítése/elrendezése és ne szerepeljenek a dokumentum szövegeiben JavaScript parancsok, se JavaScript hivatkozások. Főképp, véletlenül se használjuk a már igen régen elavult

<frameset> elemet.

Transitional

Sajnos olykor arra kényszerülünk, hogy az XHTML 1.0 szabvány dokumen-tumtípus megadása esetén a Transitional, azaz az átmeneti változatot használ-juk. Minden esetben ezt érdemes használni, ha az előzőekben felsorolt dolgok-nak nem tudunk eleget tenni, azaz a felsorolt elemek bármelyike is szerepel a HTML dokumentum kódjában, vagy másoknak is van hozzáférésük a kódjaink szerkesztéséhez, még ha az egy tartalomkezelő rendszer is, nem egy élő sze-mély. Ez a DPD elnéző a korábbi HTML tag-ekkel és a korábbi, ma már elavult-nak minősített attribútumokkal szemben.

A HTML alapjai 59

Frameset

A harmadik, Frameset ajánlás használatát mindenképpen kerüljük, nagyon nagy öngól ma frames szerkezetű oldalakat készíteni. A frames szerkezetű web-oldalakkal elsősorban az a probléma, hogy a keresők nem az egész weboldalt (azaz nem a framesetet) találják meg, hanem csak annak egyik framejében lévő HTML-t, azt, amin a keresett adat áll; senki sem szeretné, ha az oldalainak csak egy területét dobná ki a kereső, például a jobb alsó fram-ben lévő információ-kat; anélkül, hogy megjelenne a menüsor, vagy a kezdőlapra mutató logó. A frame-s szerkezetű weblapok esetében hozzáférhetetlenek (nehézkesen hozzá-férhetőek) az adatbázis adatok és nagyon nehézkes (működésképtelenek) a dinamikus oldalak működtetése. A Szabványkövető weblaptervezés című könyv nemes egyszerűséggel a következőképpen vélekedik a framek használatából adódóan megkövetelt XHTML 1.0 frameset típusú DOCTYPE definícióról: „Akkor érdemes használnunk, amikor valaki egy pisztolyt a fejünkhöz tartva keretvázas oldal írására kényszerít bennünket.”.

A DOCTYPE típusa hatással lehet az oldalak megjelenítésére is.

Nem mindegy, hogy melyik DOCTYPE-ot adjuk meg, mert a

megadástól függően változhat ugyanannak a kódú dokumentumnak a megjelenítése ugyanabban a böngészőben is akár. Példaként nézzük meg a <body> tagen belül régen megadhatott bgcolor attribútumot! Tegyük fel, hogy a dokumentumban ez szerepel. Ha az XHTML 1.0 Strict-et adjuk meg a DOCTYPE-ban, akkor az

érvényességellenőrzők hibát fognak jelezni és a szabványkövető böngészők figyelmen kívül hagyják az attribútumot, így a bgcolor attribútumnak megadott érték, azaz a megadott háttérszín nem fog megjelenni az oldalon. HA ezzel ellentétben az XHTML 1.0

Transition-t adjuk meg a DOCTYPE bejegyzésben, akkor a bgcolor attribútum, amely a régebbi HTML nyelvből jött minden további nélkül értelmezésre kerül és háttérszín formájában megjelenik az atribútumnak megadott érték az oldalon.

Hasonlóan szemléletes a target attribútummal kapcsolatos példa, amikor is egy külső weboldalt új ablakban szeretnénk megnyitni. A target tulajdonság az elavultnak nyilvánított elemek közé tartozik, azaz ilyen már nem szerepelhet egy szigorú XHTML kódban.

Amennyiben a dokumentumunk értelmezését a Transition DTD ajánlás szerint szeretnénk értelmeztetni, minden további nélkül ez a

tulajdonság az <a href> tagen belül értelmezve lesz és a megnyitni kívánt oldal valóban új ablakban fog megjelenni. De ha a szigorú, Strict DTD ajánlás szerint szeretnénk a böngészőkkel értelmeztetni a kódunkat, akkor ezzel az attribútummal semmit sem fogunk elérni, helyette erre a célra JavaScript kódot lesz szükséges használni.

A DOCTYPE bejegyzés után az XHTML névtér megadása következik:

http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd.