Tag | Význam | Párový | Výskyt |
---|---|---|---|
iframe | vložený rám | ano | |
frameset | skupina rámů | ano | za <head> |
frame | rám | ne | <frameset> |
noframes | alternativa pro vyhledávače | ano | <frameset> |
Doporučení 2019 i později: Další tagy tvořící rámy (frameset, frame) sice stále v prohlížečích fungují, ale přinášejí hodně problémů v použitelnosti. Doporučuji je tedy nepoužívat, snad s výjimkou iframe, který se občas hodí, například v reklamě. Kromě toho jsou framesety v HTML 5 zakázané, i když v prohlížečích fungují (ne, že by mi tohle zrovna vadilo, ale někdo to bere jako argument).
Plovoucí rám vložený do libovolné stránky. V dokumentu se zobrazí jako obdélník s načtenou další stránkou.
<iframe> je tag párový. Když ho zapomenete uzavřít, zbytek stránky zmizí.
Iframe je dobře podporován. Používá se zejména v reklamách. Iframe není podporován v situacích, kdy stránku stahuje nějaký nestandardní klient, například nějaké čtečky nebo roboti. V takových prohlížečích se zobrazí to, co je mezi značkami <iframe> a </iframe>. Tam patří alternativní obsah (obvykle s odkazem na soubor normálně zobrazovaný v <iframe>). Prohlížeče podporující <iframe> obsah mezi značkami <iframe></iframe> nezobrazují.
Atribut | Význam | Hodnota |
---|---|---|
src | adresa načtené stránky | URL |
name | jméno pro zacílení odkazů | libovolná |
width | šířka plovoucího rámu | délka nebo procento |
height | výška | délka nebo procento |
sandbox | umí zakázat potenciálně nebezpečné chování iframu, které je normálně povolené. Přítomnost atributu sanbox všechno zakáže a případbně něco povolí. | bez hodnoty zakazuje všechno, následující hodnoty povolují: allow-top-navigation, allow-scripts, allow-same-origin, allow-popups, allow-pointer-lock, allow-forms |
srcdoc | umí vložit html dovnitř iframu přímo z nadřazené stránky | html obsah |
seamless | 2018 nikde nefunguje, ale až snad bude fungovat, povolí vnitřek iframe formátovat podle CSS stránky, do které je iframe vložený | bez hodnoty |
allowfullscreen | povolí vnitřek iframu přepnout na celou obrazovku; užitečné hlavně u videí | bez hodnoty, stačí přítomnost atributu |
align | zarovnání rámu s okolím jako u obrázku | left, right, top, texttop, middle, absmiddle, baseline, bottom, absbottom |
marginheight | vnější okraj nahoře a dole, zavrženo | pixely |
marginwidth | vnější okraj po stranách, zavrženo | pixely |
frameborder | šířka rámečku, zavrženo | pixely |
bordercolor | barva rámečku, zavrženo | barva |
hspace | vnější horizontální okraj, zavrženo | pixely |
vspace | vnější vertikální okraj, zavrženo | pixely |
scrolling | zobrazení rolovacích lišt, zavrženo | auto | yes | no |
longdesc | dlouhý popisek, zavrženo | text nebo URL |
loading | lazy | eager | auto | pokud je uvedeno loading="lazy" a iframe je na stránce níže než je viditelná oblast, stránka uvedená v src se do iframe nestahuje |
Příklad plovoucího rámu bez rámečku a lišt obtékaného textem:
Text normální stránky <iframe src="jina.htm" align="right" frameborder="0"
width="30%" height="300" scrolling="no" noresize>Alternativa: tento
prohlížeč nepodporuje iframe</iframe>
Více informací o iframe.
Varianta tagu iframe navržená v rámci Google Privacy Sandbox je nový HTML tag <fencedframe>. Chová se skoro stejně jako iframe, ale je co nejvíc omezený pokud jde o sdílení dat se stránkou, ve které je vnořený. To se týká hlavně javascriptů a různých ukládání dat (např. do local storage apod.). Zatímco s iframe se občas nějaká omezená komunikace stránky s vnořenou stránkou v iframe udělat dá, fencedframe se udělat nedá a je to jeho požadovaná vlastnost, aby to nešlo. Bude se používat hlavně v reklamě (ostatně stejně jako iframe).
Skupina rámů. Rozděluje stránku do dvou nebo více obdélníkových oblastí (rámů), do kterých se načítají jiné stránky. Tag <frameset> se vyskytuje za hlavičkou místo tagu <body>. Pokud se před <frameset> uvede <body>, rámy nebudou fungovat. Frameset může obsahovat pouze tagy <frame> a další <frameset>.
Atribut | Význam | Hodnoty |
---|---|---|
cols | rozdělení stránky do sloupcových rámů | čárkami oddělené délky, procenta nebo * určující šířku rámů |
rows | rozdělení do řádkových rámů | čárkami oddělené délky, procenta nebo * určující výšku rámů |
border | šířka rámečku mezi stránkami | pixely |
bordercolor | barva rámečku, funguje myslím pouze v Exploreru | barva |
frameborder | zobrazit rámeček | yes | no | 0 | 1 |
framespacing | další místo mezi rámy, pouze Explorer | pixely |
Naprosto nejdůležitější jsou atributy cols a rows. V jednom tagu <frameset> může být jen jeden z těchto atributů. Vyčleňují prostor pro následující rámy (tagy <frame>). Speciální hodnota * přitom znamená, že rám bude mít takovou velikost, jaká na něj zbude (podle velikosti okna).
Atributy pro zobrazení rámečku se zhusta chovají pochybně. Doporučuji používat pouze atribut border, který se zobrazuje stejně ve většině prohlížečů.
Příklad dvou rámů vedle sebe (cols jsou sloupce), ten levý je pevně široký (150),
zbytek (*) doplní druhý rám:
<frameset cols="150, *">
<frame name="sloupek" src="menu.html">
<frame name="obsah" src="uvod.html">
</frameset>
Příklad tří rámů pod sebou (jako rows = řádky), ten rám s
hlavičkou má výšku 100 pixelů, patička má výšku 10% a prostřední rám zabírá
zbytek výšky (*).
<frameset rows="100, *, 10%">
<frame name="hlavicka" src="hlavicka.html">
<frame name="obsah" src="uvod.html">
<frame name="patka" src="patka.html">
</frameset>
Rám. Vymezuje prostor pro načtení jiné stránky. Každý <frame> je vložen v elementu <frameset>, jenž mu udává rozměry pro zobrazení. Nepárový tag.
Atribut | Význam | Hodnoty |
---|---|---|
src | zobrazovaná stránka | URL |
name | jméno rámu pro zacílení odkazů | jméno rámu |
scrolling | umožnění rolování (zobrazení lišt) | auto | no | yes |
noresize | znemožnění šoupání velikosti rámů myší | bez hodnoty |
marginheight | vertikální prázdný okraj rámu | pixely |
marginwidth | horizontální prázdný okraj rámu | pixely |
frameborder | zda zobrazit rámeček | yes | no | 0 | 1 |
bordercolor | barva rámečku | barva |
Příklady vizte výše u framesetu.
Alternativní obsah pro vyhledávače. Některé prohlížeče a vyhledávače nechápou rámovou strukturu, v těch se pak zobrazí obsah elementu <noframes>.
<noframes> se má vyskytovat v elementu <frameset>, ale funguje i mimo něj. Element <noframes> může obsahovat libovolný obsah včetně tagu <body>. Je zvykem dávat tam stručný obsah stránek s odkazem na nerámovanou verzi. <noframes> nemá žádné atributy kromě obecných.
Příklad:
<frameset ...><frame ...><frame ...>
<noframes>Tento text se zobrazí ve výsledcích
vyhledávačů ... </noframes>
</frameset>
Poznámka: fakt tam nepište "Tato stránka používá rámy, ale váš prohlížeč je nepodporuje." Fakt to nedělejte, je to pakárna. Lepší je tam napsat "Tato stránka je o koních a kočkách." Ideálně tam napište samé, co je v meta description. Tenhle text z <noframes> se totiž vypisuje jako popisek ve vyhledávačích.
Jak psát web píše Yuhů, Dušan Janovský. Kontakt.