Rámy vám umožní rozdělit okno prohlížeče na několik částí. V každé části potom může být zobrazena jiná stránka. Rámy lze nastavit tak, aby zvolení odkazu v jednom rámu způsobilo načtení a zobrazení stránky v jiném rámu. Toho se často zneužívá při tvorbě navigačních menu
Struktura html dokumentu s rámy se od běžného trochu liší. Stránka musí obsahovat definici rozložení rámů <FRAMESET>. V tomto párovém tagu používáme atributy ROWS a COLS, které určují na jaký počet řádků a sloupců se obrazovka rozdělí. Velikost se zadává v pixelech nebo v procentech z celkové výšky (šířky).
<FRAMESET ROWS="50%,50%"> obsah rámů </FRAMESET> |
<FRAMESET COLS="50%,50%"> </FRAMESET> |
<FRAMESET ROWS="20%,80%"> obsah 1. rámu <FRAMESET COLS="30%,70%"> obsah 2. a 3. rámu </FRAMESET> </FRAMESET> |
Jestliže máme hotové rozložení rámů pomocí <FRAMESET>, musíme pomocí elementu <FRAME> určit, které html dokumenty se mají v rámech zobrazovat, a to pomocí atributu SRC.
<HTML> <HEAD> </HEAD> <FRAMESET ROWS="50%,50%"> <FRAME SRC="prvni.html"> <FRAME SRC="druha.html"> </FRAMESET> </HTML>
U tagu <FRAME> lze použít spoustu atributů. Atribut NORESIZE, který se postará o to, aby nešla velikost rámu měnit. Atribut SCROLLING=NO/YES/AUTO - pokud nastavíme na hodnotu NO, nepůjde se po obsahu rámu pohybovat. Rámy jsou od sebe odděleny rámečkem a jeho velikost (nebo úplné zrušení) měníme atributem FRAMEBORDER=0 . Vzdálenost obsahu rámu od pravého a levého okraje se provádí atributem MARGINWIDTH=x (za x počet pixelů). Atributem MARGINHEIGHT=x zase vzdálenost obsahu od horního a dolního okraje. Velice důležitým atributem je NAME, pomocí něhož zadáváme jméno rámu. To se hodí v případech, kdy chceme aby se stránky schované za odkazem v jednom rámu zobrazovaly v jiném rámu.
U odkazů <A> můžeme použít atribut TARGET, který určuje jméno rámu, ve kterém se má dokument zobrazit. Pokud chceme dosáhnou tohoto, musíme mít definovány jména rámů v tagu <FRAME> (viz. Obsah rámů). Př. Dejme tomu, že máme v souboru prvni.html odkazy a chceme, aby se stránky otevíraly v druhém rámu.
<HTML> <HEAD> </HEAD> <FRAMESET ROWS="50%,50%"> <FRAME SRC="prvni.html"> <FRAME SRC="druha.html" name="hlavni"> </FRAMESET> </HTML>
Odkazy v souboru prvni.html budou vypadat následovně :
<A HREF="neco.html" target="hlavni">odkaz</a>
Protože stránka, která obsahuje rozložení rámů, je jinak prázdná, v prohlížečích, které nepodporují rámy, se nic nezobrazí. To lze napravit vložením textu do elementu BODY.
Další možností je použít element NOFRAMES, který zobrazí svůj obsah pouze na prohlížečích, které nepodporují rámy.