HTML (16) - rámy

Nejen z tabulek a formulářů živ je web, dnes se tedy podíváme co jsou to rámy a jak se v html používají.

23.9.2004 10:00 | Pavel Kácha | přečteno 32645×

Co to jsou rámce?

Při formátování našeho dokumentu si můžeme vybrat z několika způsobů (technologií). Dříve se stránky forámátovaly především pomocí tabulek. To byl jediný způsob, jak docílit prakticky stejného zobrazení ve všech prohlížečích. Tento způsob se udržel až do dnešních dob. Pokud ale napíšete celé stránky do tabulkového layoutu, má to své nevýhody: kód je zbytečně velký, nepřehledný a při aktualizaci se v něm špatně orientuje (je pravda, že orientace v mnoha vnořených tabulkách se dá natrénovat, ale není to to pravé) a navíc pokud si chce naše stránky prohlédnout uživatel se zrakovým postižením, který používá nějaký program pro čtení textu na stránkách, bude mu je jeho program číst jako by slo o vnořené tabulky, takže se k požadovaným informacím dostane jen velmi těžko. Z těchto (a dalších) důvodů se hledala za tabulkový design náhrada.

Touto náhradou jsou kaskádové styly (CSS), které umožňují vytvářet na stránkách stejné struktury jako tabulky (a přidávájí i mnoho dalšího)a navíc jsou mnohem ohleduplnější k velikosti stránek (můžete si pravidla pro formátování celých stránek napsat do jednoho souboru, který budete vkládat do všech stránek - tento soubor se přitom načte jen jednou, při dalších použitích už se bude načítat z cache.) Více o kaskádových stylech se můžete dozvědět z Vaškova seriálu. Kaskadové styly mají jednu velkou nevýhodu v tom, že jsou poměrně novou technologii. Z toho pramení, že autoři prohlížečů ještě stále zapracovávají funkce CSS do svých prohlížečů (U otevřených aplikací to není až takový problém, nejvíce bohužel zaostavá jeden nejmenovaný nejpoužívanější :( prohlížeč a jeho funkce se zřejmě nezlepší minimálně do roku 2006, na který je ohlášena nová verze.). Podpora v prohlížečích je asi to jedinné, co brání CSS v opravdu masovém nasazení. I dnes se vytváří weby formátované jen pomocí CSS, ale stále jich není většina.

V dnešní době se tedy obě tyto možnosti prolínají a weby se dost často tvoří jako mix tabulkového layoutu, který je dotvořen v CSS.

V případě, že se vám z jakéhokoli důvodu nelíbí představa, že své stránky budete formátovat pomocí jednoho z popsaných způsobů, nezoufejte. Existuje ještě jakási třetí cesta. A tou jsou právě rámce.

Rámce přináší do html možnost rozdělit stránku na několik samostatných částí. Do každé části stránky můžete vložit jeden html soubor, který se potom zobrazí v území, které jste pro něj při vymezování prvku připravili (pokud by se stránka nemohla do určeného prostoru vejít, objeví se po jeho stranách lišty - pokud jste je nezakázali vytvářet.)

Jak vytvořit stránku s rámci

Možná se zeptáte zda má vůbec cenu učit se rámce, když se dnes dá už prakticky vše vytvořit pomocí CSS. V téhle oblasti se webmasteři dost odlisuji, někteří jsou pro používání rámů, jiní jsou v naprosto neoblomné opozoci.. Můj osobní názor je takový: že určitě má smysl zjistit si, co že to vlastně rámy jsou a jak se dělají, ale nejspíš je příliš v praxi nevyužijete...

Stránky s využitím rámců mají tu zvláštnost, že hlavní stránka, neobsahuje žádný běžně zobrazovaný text, ale pouze definici rozložení jednotlivých oblastí na stránce a další doplňující informace.

Kromě toho musíme použít i speciální hlavičku pro definici stránky s rámci. O tom jsme si již povídali v prvním díle našeho seriálu. Hlavička dokumentu bude vypadat například takto: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

Po tradiční hlavičce přijde další změna místo elementu <body> použijte element <framset>. Jde o párový tag a ukončovací tag je povinný.

V dnešním dílu si ukážeme, jak vytvořit stránku, kterou rozdělíme na část pro menu a na část pro zobrazování vlastního textu.

Levý sloupec pro menu bude široký 150 pixelů a pravý sloupec chceme mít roztažený až do konce stránky. K tomu nám poslouží atribut cols="" v elementu <framset>. Jako jeho hodnotu zadáme šířku pro jednotlivé sloupce, tedy: 150, *. Hvězdička označuje zbývající místo po rozdělení stránky pro části s fixní velikostí.

Nyní nadefinujeme obsah jednotlivých částí stránky. Poslouží nám k tomu element <frame> a jeho atribut src="". Jako jeho hodnotu uvedeme cestu k souboru (stránce), který chceme vložit do stránky, např.: menu.html

Element <frame> je nepárový a musíme ho zavolat pro každu část stránky, kterou jsme nadefinovali, takže v našem příkladu budou potřeba dvě použití elementu <frame>

Nakonec můžeme připsat mezi párový tag <noframes> informaci pro návštěvníky, kteří mají prohlížeč, který nepodporuje rámy.

A nyni celý příklad (bez určení typu dokumentu a hlavičky):

<frameset cols="150, *">
<frame src="menu.html">
<frame src="hlavni.html">
</frameset>
<noframes>
Váš prohlížeč bohužel nepodporuje rámce.
</noframes>

Příště se podíváme na další příklady použití rámců a probereme si všechny pouzitelné atributy.

Online verze článku: http://www.linuxsoft.cz/article.php?id_article=424