Specializovan² t²denφk o v²poΦetnφ technice o Internetu (CW 51-52/97) Vytvß°φme si domovskou strßnkuJi°φ Kosek ml.
Rßmy Dnes pon∞kud p°ekroΦφme hranice HTML 3.2 a povφme si n∞co o rßmech. Rßmy umo₧≥ujφ rozd∞lit okno prohlφ₧eΦe na n∞kolik Φßstφ; v ka₧dΘ Φßsti pak m∙₧e b²t zobrazena jinß strßnka. Navφc lze vÜe ud∞lat tak, aby zvolenφ odkazu v jednom rßmu vyvolalo naΦtenφ strßnky do jinΘho rßmu. Tak m∙₧eme naÜe strßnky obohatit nap°φklad o navigaΦnφ menu, tedy v∞c pro u₧ivatele jist∞ pohodlnou. Rßmy dnes podporuje valnß v∞tÜina prohlφ₧eΦ∙, nejsou vÜak souΦßstφ standardu HTML 3.2. Jejich popis je a₧ ve verzi 4.0. I p°esto nßm dnes nic v pou₧φvßnφ rßm∙ nebrßnφ. V p°φÜtφm dφle serißlu si navφc povφme, jak za°φdit, aby strßnka s rßmy byla Φitelnß i ve starÜφch prohlφ₧eΦφch bez podpory rßm∙.
Definice rozlo₧enφ rßm∙ na strßnce Ji₧ jsme °ekli, ₧e rßmy umo₧≥ujφ rozd∞lit strßnku na n∞kolik Φßstφ. Ka₧dß Φßst pak zobrazuje zcela b∞₧nou HTML strßnku. Pro vytvo°enφ rßm∙ tedy staΦφ pomocφ jednoho HTML dokumentu popsat rozlo₧enφ rßm∙ na strßnce a ka₧dΘmu rßmu urΦit, kterß strßnka se v n∞m mß zobrazit. Z toho vypl²vß, ₧e strßnka definujφcφ rozlo₧enφ rßm∙ bude mφt pon∞kud jinou strukturu ne₧ obyΦejn² HTML dokument. Strßnka definujφcφ rozlo₧enφ rßm∙ musφ obsahovat zßhlavφ (HEAD) a definici rozlo₧enφ rßm∙ (FRAMESET). SamotnΘ t∞lo dokumentu (BODY) nemusφ b²t uvedeno -- zobrazuje se pouze v t∞ch prohlφ₧eΦφch, kterΘ rßmy nepodporujφ. Je to tedy to pravΘ mφsto pro uvedenφ odkazu na alternativnφ verzi dokumentu, kterß neobsahuje rßmy. Samotnou definici rozlo₧enφ rßm∙ na strßnce m∙₧eme provΘst pomocφ elementu FRAMESET. U n∞j lze pou₧φt 2 atributy ROWS a COLS. Atributy obsahujφ Φßrkami odd∞len² seznam velikostφ jednotliv²ch vodorovn²ch Φi svisl²ch rßm∙. PoΦet polo₧ek v seznamu urΦuje poΦet rßm∙, kterΘ se na strßnce vytvo°φ. Obvykle se najednou pou₧φvß pouze jeden z atribut∙. Pokud pou₧ijeme oba dva najednou, vytvo°φ se m°φ₧ka -- poΦet rßm∙ pak odpovφdß souΦinu poΦtu vodorovn²ch a svisl²ch Φßstφ. JednotlivΘ prvky seznamu vymezujφcφ velikost jednotliv²ch rßm∙ mohou b²t zadßny t°emi zp∙soby. Asi nejjednoduÜÜφ zp∙sob je zadat p°φsluÜn² rozm∞r napevno v pixelech. M∙₧eme pou₧φt i procentnφ hodnotu, kterß se bude vztahovat k Üφ°ce, resp. v²Üce okna prohlφ₧eΦe. P°i t°etφm zp∙sobu zßpisu se velikost udßvß jako celΘ Φφslo dopln∞nΘ o hv∞zdiΦku (*). P°i rozd∞lovßnφ volnΘ plochy se nejprve p°i°adφ prostor rßm∙m, jejich₧ velikost je urΦena v pixelech nebo jako procento. ZbylΘ mφsto se pak rozd∞lφ mezi rßmy s velikostφ urΦenou pomocφ hv∞zdiΦky. Mφsto se p°id∞lφ proporcionßln∞ podle Φφsel uveden²ch p°ed hv∞zdiΦkou. Zßpis * odpovφdß zßpisu 1*. Na obrßzku 1 si m∙₧eme prohlΘdnout n∞kolik ukßzek rozd∞lenφ okna prohlφ₧eΦe na rßmy.
Vidφme, ₧e p°φpady komplikovan∞jÜφho rozlo₧enφ rßm∙ m∙₧eme elegantn∞ vy°eÜit pomocφ vzßjemnΘho vno°enφ FRAMESET.
Definice obsahu rßmu Ji₧ umφme definovat rozlo₧enφ rßm∙ na strßnce. Zb²vß tedy urΦit strßnky, kterΘ se v jednotliv²ch rßmech objevφ. K tomuto ·Φelu slou₧φ element FRAME a jeho atribut SRC. NaÜi poslednφ ukßzku rozlo₧enφ rßm∙ doplnφme o definici obsahu rßm∙. Zφskßme tak naÜi prvnφ strßnku s rßmy: <!DOCTYPE HTML PUBLIC "-//W3C/DTD HTML 4.0 Draft//EN">
Na skuteΦn²ch strßnkßch s rßmy v∞tÜinou tag <FRAME> obohatφme jeÜt∞ o dalÜφ atributy. Pokud chceme, aby velikost rßmu nemohl u₧ivatel m∞nit, pou₧ijeme atribut NORESIZE. Hodφ se v∞tÜinou v p°φpadech, kdy je obsah rßmu tvo°en obrßzkem -- u obrßzku znßme p°esn² rozm∞r a rßm m∙₧eme nastavit tak, aby se do n∞j obrßzek veÜel cel². V ostatnφch p°φpadech bychom m∞li u₧ivateli ponechat jistou volnost, aby si mohl velikost rßm∙ p°izp∙sobit sv²m individußlnφm pot°ebßm a velikosti svΘ obrazovky. DalÜφ atribut, kter² m∙₧eme u FRAME pou₧φt, je SCROLLING. Tento atribut rozhoduje o tom, zda bude rßm dopln∞n posuvnφkem, kter² umo₧nφ u₧ivateli pohyb po delÜφch strßnkßch zobrazen²ch v rßmu. Atribut m∙₧e nab²vat t°φ hodnot: YES, NO a AUTO. Pou₧itφm SCROLLING=YES si u rßmu p°φtomnost posuvnφku vynutφme. S hodnotou SCROLLING=NO musφme zachßzet opatrn∞ -- m∙₧e se stßt, ₧e na obrazovce s ni₧Üφm rozliÜenφm by si u₧ivatel nemohl p°eΦφst cel² obsah strßnky. Standardn∞ mß atribut hodnotu AUTO, kterß automaticky doplnφ posuvnφk v p°φpadech, kdy je strßnka v∞tÜφ ne₧ p°φsluÜn² rßm. Normßln∞ jsou od sebe jednotlivΘ rßmy odd∞leny ·zk²m rßmeΦkem. Pokud nechceme mφt okolo rßmu rßmeΦek, staΦφ pou₧φt atribut FRAMEBORDER=0. Nesmφme vÜak zapomenout na uvedenφ atributu u vÜech rßm∙, kterΘ s rßmeΦkem sousedφ. Pomocφ atribut∙ MARGINWIDTH a MARGINHEIGHT m∙₧eme ovliv≥ovat vzdßlenost obsahu rßmu od okraj∙. Jako hodnota atribut∙ se uvßdφ poΦet pixel∙. MARGINWIDTH urΦuje okraj nalevo a napravo, MARGINHEIGHT naho°e a dole. Nakonec jsme si nechali jeden z velmi d∙le₧it²ch atribut∙ -- NAME. NAME slou₧φ k urΦenφ jmΘna rßmu. Na toto jmΘno se pak m∙₧eme odvolßvat v odkazech. Dosßhneme tak efektu, kdy aktivace odkazu v jednom rßmu vyvolß naΦtenφ strßnky v jinΘm rßmu. Rßm m∙₧eme pojmenovat v podstat∞ libovoln∞, jmΘno by vÜak m∞lo zaΦφnat pφsmenem anglickΘ abecedy (A--Z).
UrΦenφ cφlovΘho rßmu pro odkaz Pokud p°i definici rßm∙ definujeme jejich jmΘna pomocφ atributu NAME, m∙₧eme se pak v odkazech odvolßvat na jednotlivΘ rßmy pomocφ atributu TARGET. Jemu p°i°adφme jmΘno rßmu, ve kterΘm chceme zobrazit strßnku, kterß se skr²vß za odkazem. Atribut TARGET m∙₧eme pou₧φvat krom∞ odkaz∙ (element A) i u element∙ LINK, AREA a FORM, proto₧e takΘ mohou vyvolat naΦtenφ novΘ strßnky. PraktickΘ pou₧itφ si ukß₧eme na jednoduchΘm p°φkladu. Dejme tomu, ₧e chceme na Web umφstit elektronickou podobu Φasopisu. Budeme chtφt, aby v levΘ Φßsti obrazovky byl p°ehled vÜech rubrik Φasopisu a v pravΘ v₧dy obsah jednΘ rubriky. Zvolenφ rubriky v levΘ Φßsti by m∞lo zp∙sobit zobrazenφ p°φsluÜnΘ rubriky v pravΘm rßmu. Nejprve tedy vytvo°φme dokument, kter² rozd∞lφ okno na rßmy a naΦte ·vodnφ strßnky. Rßm pro obsah rubrik nesmφme zapomenout pojmenovat: <!DOCTYPE HTML PUBLIC "-//W3C/DTD HTML 4.0 Draft//EN">
Nßs hlavn∞ zajφmß, jak bude vypadat strßnka s p°ehledem vÜech rubrik -- rubriky.html: <!DOCTYPE HTML PUBLIC "-//W3C/DTD HTML 4.0 Draft//EN">
Pou₧itφ atributu TARGET zajistφ, ₧e obsahy jednotliv²ch rubrik (ulo₧enΘ v souborech uvodnik.html, domov.html, zahranici.html a inzerce.html) se zobrazφ v pravΘm rßmu. Pokud strßnka -- jako v naÜem p°φklad∞ -- slou₧φ jako jakΘsi menu, je v²hodnΘ specifikovat jmΘno cφlovΘho rßmu spoleΦnΘ pro vÜechny odkazy na strßnce. UÜet°φme si tak psanφ. Standardnφ jmΘno cφlovΘho rßmu nastavφme pomocφ tagu <BASE TARGET=jmΘno_rßmu>. Nesmφme zapomenout, ₧e element BASE musφ b²t uveden v zßhlavφ dokumentu. Menu ulo₧enΘ v souboru rubriky.html tedy m∙₧eme zapsat zkrßcen∞ jako: <!DOCTYPE HTML PUBLIC "-//W3C/DTD HTML 4.0 Draft//EN"> <HTML>
Pokud pou₧ijeme atribut TARGET p°φmo u odkazu, mß v∞tÜφ vßhu ne₧ cφlovΘ okno urΦenΘ elementem BASE. Pokud cφlovΘ okno nespecifikujeme ₧ßdn²m zp∙sobem, strßnka se nahraje do rßmu, kter² odkaz obsahuje. Pokud omylem zadßme neexistujφcφ cφlov² rßm, prohlφ₧eΦ otev°e novΘ okno a p°i°adφ mu toto jmΘno. Jako jmΘna cφlov²ch rßm∙ m∙₧eme pou₧φvat i 4 p°eddefinovanΘ hodnoty, je₧ jsou popsßny v tabulce 1.
_blank- >Dokument se zobrazφ v novΘm nepojmenovanΘm okn∞. _self - Dokument se zobrazφ ve stejnΘm okn∞. Tato vlastnost se m∙₧e hodit v p°φpadech, kdy v dokumentu pou₧ijeme <BASE TARGET=jmΘno_rßmu>. _parent - Dokument se zobrazφ v rßmu nebo okn∞, kterΘ obsahuje nejbli₧Üφ nad°azen² element FRAMESET. _top - Dokument se nahraje do celΘho okna prohlφ₧eΦe a vÜechny rßmy se zruÜφ.
P°φÜt∞ si ukß₧eme praktickou ukßzku rßm∙ a °ekneme si, jak strßnky s rßmy upravit tak, aby byly p°φstupnΘ i pro starÜφ prohlφ₧eΦe bez podpory rßm∙.
| <<< | COMPUTERWORLD | IDG CZ homepage | |