Pokiaľ ešte rámce nepoznáte, kľudne si ich vyskúšajte a sami sa rozhodnite, či ich budete používať.
Rámce (rámy, frames) - to je zaujímavá možnosť zobraziť na jednej stránke viac samostatných HTML súborov. Viac iste pochopíte z obrázka:
V našom prípade si vytvoríme tri súbory. Nazveme ich vlavo.html, obsah.html a index.html. Prvé dva z nich sú obyčajné stránky, aké sme tvorili doteraz.
Takto môže vyzerať vlavo.html...
<html> <head> <title>Vľavo</title> </head> <body> Toto je navigácia. </body> </html>
... a takto obsah.html:
<html> <head> <title>Vľavo</title> </head> <body> Toto je samotný obsah stránky. </body> </html>
Súbor index.html bude obsahovať definíciu (určenie) rámcov - párový tag FRAMESET
. Jeho atribút ROWS
určuje riadkové rozvrhnutie, COLS.
stĺpcové. Hodnoty atribútov sú buď percentuálne alebo číselné.
<html> <head> <title>Stránka</title> </head> <frameset cols="30%,70%"> ... </frameset> </html>
Hlavná stránka bude teda predelená na dva stĺpce - jeden so šírkou 30%, druhý 70%.
Do vnútra FRAMESET
u ešte pridáme samotné rámce - tagy FRAMES
. Tie majú atribúty NAME
(názov rámca) a SRC
(adresa vnorenej stránky).
<html> <head> <title>Stránka</title> </head> <frameset cols="30%,70%"> <frame name="vlavo" src="vlavo.html"> <frame name="vpravo" src="obsah.html"> </frameset> </html>
Jednoduchá stránka s rámcami je na svete. Skúsme ďalšiu. Ak by sme sa rozhodli pre tri riadky, pričom prvý by mal výšku 100 pixlov, druhý 200px a tretí by sa mal prispôsobiť veľkosti okna, zdrojový kód súboru index.html by vyzeral takto:
<html> <head> <title>Stránka</title> </head> <frameset rows="100,200,*"> <frame name="hore" src="hore.html"> <frame name="stred" src="obsah.html"> <frame name="dole" src="dole.html"> </frameset> </html>
Ako vidíte, zmenil sa nám atribút COLS
na ROWS
(iná je i hodnota) a pribudol jeden FRAME
. Samozrejme, že treba vytvoriť aj patričné súbory, ktoré sa v definícii nachádzajú (hore.html, obsah.html, dole.html).
Teraz však chceme, aby sa odkaz v hornom rámci otvoril v ráme, ktorý sa volá stred
. Poslúži nám atribút TARGET
tagu A
. Ten bude obsahovať názov rámca (jeho NAME
). Do súboru hore.html dáme odkaz:
<a href="nieco.html" target="stred">Otvor</a>
Ak je odkazov príliš veľa, lepšie sa využije tag BASE
, ktorý patrí do hlavičky (HEAD
).
<base target="stred">
Odteraz sa budú všetky odkazy na stránke hore.html otvárať v ráme stred
.
Ak prehliadač nedokáže vykresliť rámce (takých je málo), zobrazí obsah tagu NOFRAMES
, ktorý sa nachádza vnútri FRAMESET
u.
<html> <head> <title>Stránka</title> </head> <frameset cols="30%,70%"> <frame name="vlavo" src="vlavo.html"> <frame name="vpravo" src="obsah.html"> <noframes> <body> Prejdite na stránku bez rámcov. </body> </noframes> </frameset> </html>
Tag FRAMESET
má niektoré ďalšie atribúty: FRAMEBORDER
(hodnota 1
= rámček, 0
- bez rámčeka), NORESIZE
(zabráni zmene veľkosti) a SCROLLING
(yes
, no
, auto
).
<frame name="ram" src="ram.html" scrolling="no">
Najväčšou nevýhodou je, že pri hľadaní cez vyhľadávače sa väčšinou zobrazí len jedna stránka, nie celá definícia rámcov. Návštevník tak nemusí vidieť napr. navigáciu.
Hoci by sa mohlo zdať, že rámce navigáciu uľahčujú, opak je zvyčajne pravdou. Neodporúčajú sa pre bežné stránky.
Väčšina profesionálnych serverov rámce nepoužíva.
A niektoré staré prehliadače zase stránku nezobrazia správne, ale to je podľa mňa nepodstatné, veď existuje NOFRAMES
.