Vissza Tartalomjegyzék Előre

13. A keretek

Bizonyára láttunk már olyan honlapot, ahol a böngészőablak több részre volt osztva: az egyik része görgethető volt, egy másik része nem, az egyik része gyakran változott, a másik részében viszont mindig ugyanaz volt, legtöbbször egy menü, melynek segítségével válogathattunk, hogy mi jelenjen meg a másik részben. Az ilyen részeket kereteknek (angolul frame, e.: [frém]) hívják.

A keretek kialakítása

A keretek kialakítására két elem szolgál: a <frameset> és a <frame>. Az előbbi osztja keretekre a lapot, az utóbbi pedig meghatározza az egyes keretek tulajdonágait. A <frameset>-nek két paramétere lehet: a rows és a cols. Az előbbi azt határozza meg, milyen sorokra osztjuk a böngészőablakot, az utóbbi pedig azt, hogy milyen oszlopokra. Együttes használatukkal akár rácsszerű felosztást érhetünk el. A keretek egymásba is ágyazhatók, így az oszlopokat további sorokra bonthatjuk, és viszont. A képernyőt elvileg annyi részre szabhatjuk, ahányra akarjuk, csupán a képernyő mérete és a jó ízlés szabja meg a határt. Fontos megjegyezni, hogy azt az oldalt, amelyiken a böngészőablakot keretekre szabjuk, másra használni nem lehet. Éppen ezért a <frameset> mindig a <body> helyett áll! A keretekre osztó oldalon tehát sem a <body> elem nem szerepelhet, sem olyan, amelyik a testben szokott állni.

A rows és a cols hasonlóképpen működik. Értékként egy idézőjelek közé írt számsort kap meg, és annyi sorra, ill. oszlopra bontja a képernyőt, ahány szám a sorban van. (Tehát legalább két számnak kell lennie.) A számok képpontban adják meg a sor magasságát, ill. az oszlop szélességét. Mivel különböző méretű képernyők vannak, célszerű valamelyik méret (célszerűen a legnagyobb) helyett egy csillagot (*) megadni: ez a képernő maradékát jelenti. A csillag másra is használható, nevezetesen a képernyő arányok szerinti felbontására. A rows="*,3*" paraméter két sorra bontja a képernyőt, és a második sor háromszor olyan magas lesz, mint az első; a cols="2*,3*,4*" 2:3:4 arányban három oszlopra bontja a képernyőt. Az arányokat megadhatjuk százalékban is, de ez esetben vigyázzunk, mert ha nem jön ki pontosan a 100%, akkor nem tudjuk előre kiszámítani az eredményt. Vigyázzunk arra is, hogy ha a csillagos arányítást a képpontos és százalékos megadás mellett használjuk, akkor a csillagos arányítás kizárólag a fenmaradó területek arányos felosztására vontakozik, nem pedig a képernyő egészére!

Nézzünk egy példát a keretek egymásba ágyazására:
<frameset cols="100,50%,*">
<frameset rows="2*,*">
<frame...>
<frame...>
</frameset>
<frame...>
<frameset rows="20,75%,*">
<frame...>
<frame...>
<frame...>
</frameset>
</frameset>

Az első sorban három oszlopra osztjuk a képernyőt: egy száz képpont szélesre, egy fele olyan szélesre, mint a teljes böngészőablak, és a maradékra. A második sorban az első oszlopot két sorra osztjuk: a felső kétszer olyan magas, mint az alsó. A harmadik sorban megadjuk a bal oszlop felső, ill. alsó keretének tulajdonságait (l.lejjebb). Az ötödik sorban lezárjuk a második sorban nyitott keretezést. A hatodik sorban megadjuk a középső oszlop tulajdonságait. A hetedik sorban három sorra osztjuk a jobb oldali oszlopot. A felső sor csupán 20 képpont magas, a középső a teljes böngészőablak háromnegyedét foglalja el, a legalső pedig a maradék helyet tölti ki. A nyolcadik, kilencedik és tizedik sorban megadjuk a három keret tulajdonságait. A tizenegyedik sorban bezárjuk a hetedik sorban kezdett keretezést, a tizenkettedikben pedig az első sorban megkezdettet.

A fenti példa ijesztő lehet, de ne felejtsük el, valójában szinte soha nincs szükségünk ennyi keretre. Mi több, két-három keretnél többet egyáltalán nem tanácsos használni.

Miután tudjuk, hogyan kell felosztani a böngészőablakot keretekre, rátérhetünk arra milyen tulajdonságokat adhatunk a kereteknek. A <frame>legfontosabb paraméterei a következők:

A régi böngészőknél

A régi böngészők nem tudják kezelni a kereteket, éppen ezért nem is tudnak megjeleníteni olyan lapokat, amelyeken keretek vannak. Erre találták ki a <noframes> elemet. Hatására ugyan a böngésző nem lesz képes megjeleníteni a keretek tartalmát, de írhatunk egy üzenetet a látogatónak, melyben kifejezzük sajnálatunkat, hogy nem tudja megtekinteni lapunkat. Udvariasságból leírhatjuk, miről szól a lapunk (hátha kedvet kap visszatérni egy másik böngészővel), vagy elirányíthatjuk egy hasonló tartalmú, nem keretes oldalra. Ahogy az idő halad, egyre kevésbé lesz jelentősége ennek a funkciónak, mégis illendő legalább hagyománytiszteletből elhelyezni egy ilyen üzenetet.

Hivatkozás másik kerethez

Bármelyik keretben is helyezünk el hivatkozást, a kért oldal alapesetben ugyanabban a keretben fog megnyílni, mint amelyikben a hivatkozás van. Ez nem túl szerencsés, különösen, ha azért hoztunk létre kereteket, hogy az egyikben egy menü legyen, amivel a másikban megjelenő oldalak között lapozgatunk. Van azonban egy paraméter, mely lehetővé teszi, hogy a kért oldalt egy másik keretbe töltsük, ráadásul ezt a paraméter a target. Emlékezzünk: amikor a hivatkozásnál ennek a paraméternek a new értéket adtuk, akkor a böngésző új ablakban jelenítette meg a hivatkozott oldalt. Ha értékként valamelyik keret nevét adjuk meg, akkor az oldal abban a keretben fog megnyílni. (Mint fentebb említettük, a keretnek a <frame> elem name paraméterében adhatunk nevet. Természetesen a new nevet célszerű kerülni!) Ha a target paraméterbe a _top nevet írjuk, akkor az oldal megnyitásakor a böngészőablakból eltűnnek a keretek, és a kért oldal a böngészőablak teljes felületén fog megjelenni.

A keretek használata

Aki már értett valamicskét a HTML-hez, amikor ebbe a segédletbe belenézett, bizonyára csodálkozik azon, hogy ilyen későn esik szó a keretekről. Sok más segédlet a HTML legfontosabb funkciói között tárgyalja a kereteket. Annak, hogy nálunk mégis ilyen későn kerül szóba, két oka van. Az egyik az, hogy keretek nélkül is lehet nagyon színvonalas oldalakat készíteni. (Manapság a legtöbb profi oldalon, többek közöt az úgynevezett portálokon sem találunk kereteket.) A msáik ok az, hogy a kezdő honlaptervezők gyakran nagyon megörülnek a keretezés lehetőségének, és ott is használják őket, ahol nincs rájuk szükség, sőt, ahol egyenesen zavaróak. Éppen ezért csak későn szóltunk a keretekről, és rögtön be is mutatjuk a keretekkel kapcsolatos leggyakoribb hibákat.

Ha egy 800*600 képpontos képernyőt veszünk figyelembe (ma Magyarországon ez a leggyakoribb), akkor egy böngészőablak (mondjuk a legelterjedtebb Internet Explorerben) kb. 775*490 képpont. Egy kezdő hajlamos arra, hogy az ablak tetejéből lehasítson úgy 80 képpontnyit egy bannernek (mint korábban szó esett róla, egy szabványos banner 60 képpont magas), illetve úgy száz képpontot az ablak oldalából egy menünek. Ennek következtében marad 675*410 képpont „hasznos terület”. Ez a teljes képernyőfelület 57 százaléka, azaz alig több, mint a fele! Viszont nagyon sok amatőr honlapkészítő olyan ingyenes tárhelyekre helyezi el honlapját, ahol még egy reklámcsíkot raknak a képre. Ennek következtében a valódi információt tartalmazó rész könnyen a teljes képernyőfelület felénél is kevesebb lesz. Ilyen kis helyen állandóan görgetni kell a szöveget, egy hosszabb szövegben nehéz visszakeresni, és a képek is nehezebben érvényesülnek. Ráadásul a lehasított keretek gyakran nincsenek is kitöltve (egy átlagos amatőr lapon nincs szükség hat-nyolc menüpontnál többre). Mindezek eredményeképpen a lap éppen a kereteknek köszöhetően válik nehezen kezelhetővé, kényelmetlenné.

A keretek másik hátránya, hogy a böngésző címsorában csak a keretező oldal címe jelenik meg, és csak annak url-je látható. Ha valaki fel szeretné venni valamelyik oldalunkat a kedvencei (könyvjelzői) közé, akkor legközelebb is a kezdőlapunkat fogja megtalálni, nem pedig azt az oldalt, amelyet meg szeretett volna jelölni.

Éppen ezért jobb megoldásnak tűnik, ha egy néhány lapból álló honlapon inkább minden oldal tetejére (esetleg aljára, mindkettőre) teszünk menüt. Ez a menü böngészés közben kigögethető az ablakból és nem foglal helyet. Természetesen egy ilyen lap karbantartása kissé több fáradságot igényel, hiszen egy új oldal befűzésekor mindegyik régebbi oldalon át kell írnunk a menüt. A lap kényelmes használata azonban megér ennyi fáradságot. Az is jó megoldás, ha egy központ menüből lehet eljutni az egyes témákhoz, ahonnan csak a hasonló témájú lapokra hivatkozunk.

Ha valamiért mégis ragaszkodunk a keretes menühöz, akkor érdemes a böngészőablakot vízsszintesen úgy kettészelni, hogy az egyik keret alig legyen magasabb a betűkél. A menüpontokat abba az egy sorba írhatjuk: külön keretben van menünk, mégis alig foglal helyet.

Természetesen nem akarjuk azt állítani, hogy a keretek használata egyértelműen hiba, de jó, ha alaposan meggonmdoljuk, mielőtt kereteket kezdenénk használni.


Vissza Tartalomjegyzék Előre