Rámce a vložené rámce

V tejto časti HTML tutoriálu sa pozrieme na rámce. Rámce si vieme predstaviť ako samostatné webové okná (samostatné dokumenty).
V jazyku HTML máme dve možnosti použitia rámcov:

Jednotlivé spôsoby používania rámcov v jazyku HTML si teraz vysvetlíme.


Vložený rámec iframe

Vložený rámec si vieme predstaviť ako stránku v stránke (resp. HTML dokument v tele iného HTML dokumentu). Vložený rámec je miesto v dokumente, v ktorom je vložený iný dokument. To znamená, že každý rámec má medzi povinnými atribútmi adresu na dokument, ktorý v ňom chceme zobraziť. Vložený rámec vieme na stránku vložiť pomocou tagu iframe a do atribútu src zadáme URL adresu na dokument.

<p>Toto je ukážka vložených rámcov v jazyku HTML. Nižšie vidíte vložený rámec s odkazom na web kvizy.eu</p>
<iframe src="https://www.kvizy.eu/"></iframe>

Obsah vloženého rámca je úplne nezávislý od dokumentu, v ktorom rámec voláme. Z volaného dokumentu preto nedokážeme upravovať obsah vloženého rámca - ide o samostatný dokument.

Nie každý dokument sa dá takto vložiť. Autori webových stránok môžu zobrazovanie svojho obsahu vo vložených rámcoch zakázať.

Kedy sa používajú vložené rámce?

Vnáranie stránok do stránok sa dnes používa zriedkavo, ale môže ísť o užitočný spôsob vnárania obsahu v niektorých prípadoch:

  • Asi najčastejšie sa s tým stretávame vtedy, keď chceme na stránke umiestniť obsah z inej stránky v podobe videa (video z videoportálu typu YouTube alebo Vimeo).

  • Niekedy chceme vložiť do aktuálneho HTML dokumentu ukážku z iného dokumentu: napríklad náhľad na PDF dokument.

Množina rámcov (frameset)

Existuje aj iný spôsob používania rámcov, ako cez vnorené rámce.

Predstavme si situáciu, že chceme vedľa seba zobraziť viac HTML dokumentov (alebo samozrejme aj dokumentov v iných formátoch). Dalo by sa to spraviť tak, že vytvoríme nový (tretí) dokument a celý obsah prvých dvoch dokumentov do neho skopírujeme. Aby sme to nemuseli riešiť takto komplikovane, môžeme použiť HTML tag na tzv. skupinu rámcov. Vytvoríme jeden hlavný dokument, ktorý nemá svoj vlastný obsah, ale len odkazy na zoznam dokumentov a spôsob ich usporiadania (napr. vedľa seba alebo pod sebou). Na to slúži tag frameset, do ktorého vieme vložiť rámce s odkazmi na tieto dokumenty cez tagy frame.
Inak povedané, obsahom hlavného dokumentu je len informácia o tom, ako majú byť v tomto dokumente rozmiestnené iné dokumenty. Na ukážke nižšie vidíme dva rámce vedľa seba, pričom obidva smerujú na web kvizy.eu. Pomocou atribútov cols resp. rows vieme určiť, na akú veľkú časť hlavného okna sa majú jednotlivé rámce zobraziť.

Množina rámcov vedľa seba

<frameset cols="40%,60%">
  <frame src="https://www.kvizy.eu/" />
  <frame src="https://www.kvizy.eu/trening" />
</frameset>

Množina rámcov pod sebou

<frameset rows="50%,50%">
  <frame src="https://www.kvizy.eu/" />
  <frame src="https://www.kvizy.eu/trening" />
</frameset>

Upozornenie: spôsob používania rámcov namiesto HTML dokumentov už nemusí byť vo všetkých prehliadačoch podporovaný.

Takýto spôsob členenia jedného dokumentu na viac dokumentov prináša niekoľko výhod. Najčastejšie využitie bolo také, že v jednom rámci bol dokument s navigáciou (menu stránky) a v druhom rámci dokument s obsahom stránky. Tým sa zabezpečilo napr. to, že nebolo nutné na každú stránku vkladať navigáciu samostatne. Keď sme chceli niečo v navigácii resp. nejakej stránke upraviť, stačilo upraviť jeden dokument. Obsah bol na jednom mieste odkiaľ sa potom vkladal do každej stránky. Inak by sme museli robiť úpravy v každom dokumente.

Postupne sa však došlo k názoru, že takýto spôsob tvorby dokumentov (skladaním z viac iných dokumentov) nie je vhodný. K najväčším argumentom proti používaniu skupiny rámcov bolo to, že stránka s rámcami nemá svoj vlastný obsah. Pre korektné načítanie dokumentu bolo potrebné načítať všetky rámce, na ktoré odkazuje. Druhým častým argumentom proti používaniu je, že dokumenty v rámcoch sú nezávislé. Jeden dokument nevedel nič o druhom, a preto ani výsledok nepôsobil ako jeden konzistentný dokument (jedna stránka).
Preto bolo nakoniec rozhodnuté, že používanie týchto tagov nebude odporúčané a programátori webov by ich nemali ďalej používať.

Rámce v HTML - zhrnutie

V tejto kapitole HTML tutoriálu sme sa pozreli na použitie rámcov:

  • V ktorých prípadoch sa oplatí používať v HTML dokumentoch rámce.

  • Ako používať vnorené rámce iframe.

  • Ako sa používa skupina rámcov pomocou tagu frameset, a prečo sa neodporúča tento spôsob dnes používať.