Rßmy na webu

Rßm∙m se anglicky °φkß frames a dnes jsou Φastou souΦßstφ webov²ch strßnek. V tomto textu se sna╛φm na p°φkladu znßzornit, jak to funguje, a objasnit zßkladnφ syntaxi.

Jak to vypadß - T°i soubory - P°φklad - Odkazy v rßmech - Zßludnosti - Jistota navigace

Jak to vypadß

Okno prohlφ╛eΦe je rozd∞leno na n∞kolik obdΘlnφkov²ch Φßstφ (rßm∙). V ka╛dΘm rßmu je (t°eba╛e to nemusφ b²t vid∞t) samostatnß HTML strßnka (soubor). Zpravidla je jeden z rßm∙ menu s odkazy, kterΘ se po kliknutφ realizujφ v jinΘm, hlavnφm okn∞. NejΦast∞ji to vypadß n∞jak takhle:

Obsah:
odkaz
jin² odkaz
zase odkaz
Rßm s texty

sem ty odkazy z levΘho rßmu vedou

Text text: vid∞li jste mojφ strßnku o psanφ na klßvesnici? (skrytß reklama)

Takov²ch rßm∙ m∙╛e b²t v okn∞ mnoho (prakticky neomezen∞), nejΦast∞ji se pou╛φvajφ dva nebo t°i. Mohou b²t vedle sebe i nad sebou, ale v╛dy to musejφ b²t obdΘlnφky. (Zobrazte si p°φklad v prohlφ╛eΦi.)

T°i soubory

Jak to tedy ud∞lat: Proberu p°edchozφ p°φklad se dv∞ma svisl²mi rßmy vedle sebe. Vyskytujφ se tu t°i soubory. 

  1. Jeden soubor je obsah levΘho rßmu, 
  2. druh² soubor je obsah pravΘho rßmu. To jsou zatφm ·pln∞ normßlnφ HTML strßnky. 
  3. A t°etφ (nad°azen²) soubor v sob∞ obsahuje definici toho, jak se ty rßmy do okna sestavφ. I to je HTML soubor, ale mφsto t∞la s textem strßnky (tagu <body>) obsahuje nastavenφ rßm∙ -- <frameset>.

P°φklad

Do souboru priklad10.htm s definicφ rßm∙ jsem napsal tento k≤d:

<html>
<head>
  <title>P°φklad s definicφ rßm∙</title>
</head>

<frameset cols="215,*">
 
<frame name="obsah" src="priklad9.htm">
  <frame name="text" src="priklad8.htm">

</frameset>

</html>

Zßrove≥ jsem si vytvo°il soubory priklad8.htm a priklad9.htm. Zobrazte si p°φklad v prohlφ╛eΦi. Co znamenajφ jednotlivΘ tagy:

frameset
zaΦφnß deklaraci rßm∙. Vlastn∞ nahrazuje tag <body>. Musφ mφt prßv∞ jeden atribut cols (sloupce), nebo rows (°ßdky).
cols="215, *"
tento zßpis atributu znamenß, ╛e rßmy budou vedle sebe (budou to sloupce = angl. cols; u °ßdk∙ by mφsto "cols" bylo "rows"). Prvnφ rßm bude mφt ╣φ°ku 215 pixel∙ (obrazovkov²ch bod∙), druh² bude ╣irok² tak, aby vyplnil zb²vajφcφ ╣φ°ku okna (to je ta hv∞zdiΦka). Je takΘ mo╛nΘ zadßvat procenta. Rßmy mohou b²t t°eba Φty°i (i t°i, nap°. cols="*,600,*" udl∞lß 600 pixel∙ ╣irok² rßm a vyst°edφ ho mezi dva dal╣φ).
frame
Po framesetu nßsleduje popis rßm∙, ka╛d² z nich je zastoupen tagem frame. Tento tag mß dva d∙le╛itΘ atributy name a src:
name="obsah"
Atribut name u rßmu jej pojmenovßvß. V tomto p°φpad∞ se rßm jmenuje "obsah". To se pozd∞ji pou╛ije pro cφlenφ odkaz∙. (Nap°. <a ... target="obsah"> bude odkaz p°epφnajφcφ strßnku do rßmu se jmΘnem "obsah".)
src="priklad9.htm"
Atribut src u frame oznaΦuje HTML soubor (strßnku), kter² se naΦte do danΘho rßmu. V tomto p°φpad∞ to bude soubor priklad9.htm (do rßmu se m∙╛e odkazem potom dostat jinß strßnka).

Nakonec dodejme, ╛e namφsto tagu frame m∙╛e b²t dal╣φ (vno°en²) frameset, kter² op∞t rozd∞lφ rßm na n∞kolik men╣φch. Tφmto konΦφm popis jednoduchΘ v²stavby rßm∙, p°esto╛e problematika obsahuje je╣t∞ dal╣φ ╣peky (zejm. okraje).

Odkazy v rßmech

Jestli╛e mßm vytvo°enou rßmovou strukturu, mohu kter²koliv odkaz nasm∞rovat do libovolnΘho rßmu. Nynφ se budou hodit jmΘna rßm∙ (nadeklarovanß atributem name v tagu frame). V tagu A (odkaz) se pou╛ije nov² atribut target (cφl) rovn² jmΘnu cφlovΘho rßmu.

<a href="priklad8.htm" target="text">

Po kliknutφ na takov² odkaz se v rßmu jmΘnem "text" objevφ strßnka priklad8.htm.

Pokud bych atribut target nezadal, bude odkaz klikat do tΘho╛ rßmu. To se v mnoha p°φpadech hodφ (v nejv∞t╣φm rßmu), ale jindy je to nevhodnΘ (nap°. u odkaz∙ v rßmu menu).

JmΘna specißlnφch rßm∙

N∞kdy je pot°eba odkazovanou strßnku zobrazit v novΘm okn∞ nebo v celΘm prohlφ╛eΦi. Proto existujφ specißlnφ jmΘna rßm∙:

Zßkladnφ cφl (base target)

Mnoho strßnek, zejmΘna takovΘ, kterΘ fungujφ jako obsahy v levΘm rßmu, v╣echny svΘ odkazy posφlajφ do jinΘho rßmu. Aby se u ka╛dΘho odkazu nemusel nastavovat stßle stejn² cφl (target), m∙╛e se nastavit zßkladnφ cφlov² rßm, do kterΘho se budou p°epφnat odkazy na strßnce, pokud nebude stanoveno jinak. D∞lß se to tagem <base>, kter² se umφstφ do hlaviΦky strßnky:

<base target="jmΘno_zßkladnφho_rßmu">

Pou╛φvß se to zejmΘna u obsahu mal²ch rßm∙ se seznamem odkaz∙ (takovΘ to levΘ menu). Nap°. strßnka posφlajφcφ v╣echny odkazy do rßmu pojmenovanΘho (v tagu frame) "text" obsahuje v hlaviΦce zßpis:

<base target="text">

Neexistujφcφ rßm

Pokud mß odkaz zamφ°it do rßmu, kter² neexistuje, otev°e se novΘ okno prohlφ╛eΦe a strßnka se zobrazφ v n∞m. Ale toto okno si podr╛φ jmΘno onoho neexistujφcφho rßmu, tak╛e p°φpadnΘ dal╣φ odkazy se stejn²m targetem se budou zobrazovat v tomto okn∞. Vφce o nov²ch oknech otev°en²ch odkazem.

Zßludnosti

Problematika rßm∙ je velmi ╣irokß. Zatφm jsem nezmφnil, jak se definujφ okraje rßm∙, jejich prom∞nlivß velikost, zobrazenφ li╣t a podobnΘ ╣peky. U nich b²val problΘm ten, ╛e ka╛d² prohlφ╛eΦ (Netscape a Microsoft) vy╛adoval jinou deklaraci stejn²ch v∞cφ. Po nßstupu Mozilly se to hodn∞ zjednodu╣ilo.

U╛ dlouho mnoho webov²ch tv∙rc∙ (vΦetn∞ m∞) od rßm∙ upou╣tφ, proto╛e jsou pomalΘ, nevyzpytatelnΘ, graficky omezenΘ, ╣patn∞ se uklßdajφ, ovlßdajφ a tisknou. (Vizte podrobn² popis problΘm∙.) A dß se bez nich obejφt.

┌pln∞ jinou (a mßlo pou╛φvanou) oblastφ je pou╛φvßnφ takzvan²ch inline frames (vlo╛en²ch rßm∙), kterΘ se dßvajφ do strßnky tagem <iframe>.

Jistota navigace

Auto°i rßmovan²ch strßnek d∞lajφ zßkladnφ chybu, kdy╛ se domnφvajφ, ╛e ka╛d² u╛ivatel zaΦne Φφst strßnky v╛dycky z tΘ hlavnφ - rßmovanΘ. Existujφ toti╛ vyhledßvacφ stroje a roboti, kterΘ definice rßm∙ ne zcela milujφ. U╛ivatel vyhledßvaΦe pak obvykle zaΦφnß Φetbu na n∞kterΘ vno°enΘ strßnce webu, kterß rßmovanß nenφ. OblφbenΘ rΦenφ °φkß, ╛e Φtenß° p°ichßzφ na web okΘnkem od zßchoda.

U nerßmovan²ch strßnek je zvykem uvßd∞t navigaci (odkazy na p°φbuznΘ strßnky). Autor rßmovan²ch strßnek navigaci opomφjφ v domn∞nφ, ╛e odkazy na sousednφ strßnky u╛ jsou v levΘm rßmu. Jenom╛e lev² rßm se u╛ivateli vyhledßvaΦe nezobrazφ!

Nejjednodu╣╣φm °e╣enφm je umφstit na ka╛dou strßnku alespo≥ odkaz na hlavnφ strßnku (do rßmu "_top"). Tak se p°edejde nejhor╣φmu bloud∞nφ.

Dal╣φ: Detaily rßm∙, ProΦ nepou╛φvat rßmy
Vizte tΘ╛: Sprßva soubor∙, Zdokonalenφ odkaz∙, Design pomocφ tabulek, Barvenφ rolovacφ li╣ty, Iframe, Rychlost strßnek, NovΘ okno otev°enΘ odkazem

o tvorb∞, ·dr╛b∞ a zlep╣ovßnφ internetov²ch strßnek

Pφ╣e Yuh∙, dusan@pc-slany.cz

Hledßnφ:

Jak psßt web: www.jakpsatweb.cz

Pφ╣e Yuh∙: http://dusan.pc-slany.cz, mail: dusan@pc-slany.cz

Poslednφ aktualizace 10.12.2003