Vážení čtenáři, pokud jste brouzdali Internetem, potom jste už někde rámy viděli. Je to prostě stránka rozdělená na několik nezávislých částí, které se chovají relativně samostatně. Dnešní díl kurzu HTML pro začátečníky vám ukáže, jak je rámce vytvořit a používat ve svých HTML stránkách.

Předtím, než začnu probírat rámy, nemohu se nezmínit o názorech na ně. Rámy mají totiž za sebou poměrně dlouhou historii nechtěného dítěte. Rámy totiž vyrostly jako divoká skládka z podsvětí firmy Netscape, která rámy do svého prohlížeče zavedla. Celkem brzy je začal podporovat i Microsoft, který dokonce vymyslel i jejich rozšíření. A protože rámy v celku bezproblémově podporovaly dva nejvýznamnější prohlížeče dlouhá léta, začaly se používat. Jak také jinak, proč nepoužívat něco, co je k dispozici.

Samozřejmě, že se pak objevil velký nátlak ze strany lidí, kteří ctili normy rámy nepoužívat. Podle normy totiž rámy dlouhou dobu neexistovaly, a neměly se používat. A tak léta se rámy používaly, hlavní prohlížeče je podporovaly, uživatelům se rámované stránky lépe četly, než neorámované. A zároveň se více, či méně úspěšně rozvíjela „antirámová“ propaganda, která dodnes je v mnoha lidech hluboce zakořeněna. Nakonec vše rozsekla moudrým rozhodnutím standardizační komise, totiž W3C konsorcia, a rámy byly do normy přidány. Stalo se to v dubnu 1998, kdy se rámy staly součástí normy HTML jazyka pro tvorbu webových stránek ve verzi 4.0.

Ačkoli tedy rámy již nejsou žádným vyděděncem, a norma je podporuje už přes dva roky, v mnoha lidech stále zůstává zakořeněn odpor proti rámům. Velice mě mrzí, když mnoho serverů dává při hodnocení stránek černý puntík, jsou-li rámy použity.

Abych byl objektivní, je třeba říci, že existují prohlížeče, které nemají podporu rámů, byť nejsou tak rozšířené. Je proto vhodné darovat čtenářům cestu, aby si, byť třeba s horším komfortem, mohli projít vaším webem i bez rámů.

Teď se ale vrhněme na technickou část věci. Jak používat rámy na svých stránkách? Musíte nejdříve napsat hlavní stránku, která nebude řešit nic jiného, než že popíše, jak jste se rozhodli rozdělit okno prohlížeče na několik částí. Taková hlavní stránka může vypadat třeba takto:

<html>
<head>
<title>Nadpis mého webu</title>
</head>
<frameset cols="150,*">
  <frame src="leva_cast.html">
  <frame src="prava_cast.html">
</frameset>
<body>
<h2>Tyto stránky vyžadují podporu rámů. Protože je Váš prohlížeč nepodporuje, přesuňte se na <a href="bez_ramu.html>verzi bez rámů</a></h2>
</body>
</html>

Tento příklad rozděluje okno na dva sloupce. Levý sloupec je široký 150 pixelů, pravý potom zabírá zbytek obrazovky. Do levého sloupce se nahraje HTML stránka, která je uložena v souboru leva_cast.html, do pravého potom HTML stránka prava_cast.html.

Pro dělání "řezů" slouží značka <frameset>. Tato značka umožňuje rozdělit okno do libovolného počtu sloupců, a nebo řádek. Pokud budete dělit do sloupců, jak je to i v našem případě, použijete atribut cols. Budete-li dělit do řádků, použijete atribut rows. V jedné značce <frameset> je možné rozdělit okno na řádky i sloupce zároveň. Nezapomínejte, že definice rámců musí být umístněna před tagem BODY, jinak vám rámce nebudou fungovat!

Rámy nabízejí bohaté možnosti, jak určit, jak se bude okno dělit na řádky, nebo sloupce. Například můžete rozdělit okno třeba pomocí procent. Použijete-li <frameset cols="50%,50%">, potom vytvoříte dva stejně široké sloupce. Zápisem <frameset rowss="50%,25%,25%"> vytvoříte tři řádky, kde první řádek bude mít polovinu výšky okna, zbylé dva po čtvrtině výšky okna prohlížeče.

Ještě jednodušší je použití hvězdičkové konvence, kterou doporučuji. Zápis <frameset cols="*,2*"> rozdělí okno na dva sloupce, kde druhý sloupec je dvakrát širší, než první. Obdobně <frameset rowss="2*,*,3*"> rozdělí okno na řádky v poměru 2:1:3.

Nakonec jde přímo psát počet pixelů, které má oblast zabírat. To je vhodné kombinovat s některým předešlým způsobem. Zápis <frameset cols="200,*,3*"> dá prvnímu sloupci šířku 200 pixelů. Zbytek šířky se rozdělí mezi druhý a třetí sloupce v poměru 1:3.

Každá oblast, kterou pomocí značky <frameset> vyrobíte, musí mít nějaký obsah. Tento obsah určuje pro každou oblast zvlášť pomocí značky <frame>. Tato značka obsahuje atribut src, za kterým je adresa stránky, která se má uvnitř oblasti zobrazit.

Jak si můžete na našem příkladě všimnout, rámy se nezapisují do těla stránky, tedy ne mezi <body> a </body>. Měly by se psát před tyto značky. Celý mechanismus rámů pracuje tak, že pokud prohlížeč narazí na definici rámů (tedy na značku <frameset>), potom vše, co je mezi <body> a </body> ignoruje. Toho jsem také využil v příkladě. Umístil jsem mezi tyto dvě značky text, který se zobrazí jenom tehdy, pokud prohlížeč nebude umět rámy. Pokud rámy umí, potom text nevypíše.

Nyní tedy jste schopni využívat rámů i ve vašich stránkách. Protože rámy jsou zajímavé téma, které jsem ještě nevyčerpal, dočkáte se ještě pokračování. Nakonec ještě jeden příklad definice rámů. Výsledkem bude rozdělení okna na tři oblasti, a to tak, že nejdříve rozdělím okno na dva sloupce, a první sloupec ještě jednom na dva řádky. Druhý sloupec zůstane nerozdělený:

<html>
<head>
<title>Nadpis mého webu</title>
</head>
<frameset cols="20%,80%">
    <frameset rows="100,*">
        <frame src="levy_horni.html">
        <frame src="levy_dolni.html">
    </frameset>
  <frame src="prava_cast.html">
</frameset>
<body>
<h2>Tyto stránky vyžadují podporu rámů.</h2>
</body>
</html>

Celé okno bude rozděleno asi takto:

první oblast třetí oblast
druhá oblast

A to je pro dnešek vše. Příště si povíme něco o odkazech v rámcích.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Žádný příspěvek v diskuzi

Odpovědět