aneb špeky ve formátování rámové struktury
Tento text navazuje na základy rámů.
Úvodní příklad - Zobrazení lišty - Změna šířky - Okraje - Rámečky - Noframes: pro vyhledávače
Základní stránka, ve které je definice rámů, může vypadat (bez hlavičky) třeba takto:
<frameset cols="40%,*"
border="0">
<frame name="obsah" src="stranka1.htm" scrolling="auto"
noresize>
<frame name="text" src="stranka2.htm" scrolling="yes"
marginwidth="14">
<noframes>
<body>
<p>Tato stránka používá rámy, ale váš prohlížeč je
nepodporuje.</p>
</body>
</noframes>
</frameset>
Všechny použité atributy popisuji níže.
<frame scrolling="auto"> je základní hodnota. Rolovací lišta se zobrazí, je-li potřeba. Scrolling="yes" zobrazí lišty každopádně (i vodorovnou), třebaže někdy zbytečně. Mnohem víc se používá scrolling="no", které zakazuje zobrazení lišt. To je někdy potřeba, protože rolovací lišta u levého rámu výrazně ruší design. Ale stránkou v rámu, který má scroling="no", nejde posouvat, takže se to hodí jenom pro kratší stránky (většinou ten levý rán s obsahem). Jednou mě napadlo, že by se obsah takového nerolovatelného okna dal posouvat pomocí odkazů na záložky. To jde ale jen v některých prohlížečích.
Pokud opravdu nejde o krásu nebo o život, doporučuji scrolling nechat na "auto".
Uživatele IE 5.5 bude zajímat, jak lišty obarvit.
Pokud jedete přes rozhraní rámů, změní se kurzor myši na rozšiřovací, takže se dá měnit velikost rámů. Použijete-li zápis <frame noresize>, pak velikost rámů změnit nepůjde. Atribut noresize nemá hodnotu, zadává se tak, jak píšu.
V dnešním webu je vidět velmi málo rozšiřovatelných rámů, protože autoři stránek jsou hrozně namyšlení a vědí nejlépe, z jak velké plochy se má číst.
Marginwidth a marginheight u tagů <frame> nastavují okraje, aby se obsah rámů nelepil k sobě.
Na rozhraní rámů se mohou vykreslovat rámečky. Dají se ovlivnit pomocí atributů tagu <frameset>. Např. <frameset border="0">. Vše se dědí na vnořené framesety.
Border="číslo" funguje v IE 4 i v NN stejně, nastavuje šířku rámečků v pixelech, border="0" rámečky nezobrazí.
Pokud nezadáte nic, je to jakoby border="1" a rámečky se vykreslí šedě.
Border="text" chápe NN jako border="0", IE jako border="1".
Frameborder="0" mění okraje rámů z šedých plastických na bílé, s jinými hodnotami nedělá nic, pokud vím.
Netscape framespacing ignoruje. Internet Explorer ne. <frameset framespacing="10"> zobrazuje rámeček 10px kolem rámů. Přehlušuje nastavení border="hodnota" (nesčítá se).
Border je sice základní a dostačující, ale v IE dokáží framespacing s frameborderem nastavené oba na nulu přebít border, takže se nezobrazí (ne tak v Netscape, tam rozhoduje border). Samotný nulový framespacing v IE s nenulovým frameborderem (nebo bez frameborderu) srazí libovolný border na 1.
Pro prohlížeče, které neumějí zobrazovat rámy, je připravena sekce <noframes>...</noframes>. Rámující prohlížeče ji vynechávají. Nerámující prohlížeče (těch už se užívá velmi málo) v ní najdou obsah, který zobrazují tak, jako by to byla normální stránka. Je dobré dát tam rozcestník odkazů nebo alespoň odkaz na seznam stránek. Je to taková alternativa. Je slušností noframes zadávat; sprosťárna ale je, když se tam dá odkaz na stažení Micro$oftího prohlížeče.
Zásadní význam má sekce noframes pro vyhledávací roboty (například Google). Pokud rámovanou stránku udávají jako výsledek hledání, zobrazují právě začátek sekce noframes.
Většina editorů zadává do noframes text "Váš prohlížeč nepodporuje rámy" (v angličtině). Použil jsem to i v příkladu, ale je to chyba. Určitě nechcete, aby se tento text zobrazoval ve vyhledávačích jako popisek vaší stránky. Takže to přepište.
Předchozí: Základní definice rámů,
Další: Proč nepoužívat rámy
Vizte též: Barvení scroll baru, Iframe
Obsah
Hledání
Základní kurs
Editory
HTML tipy
Provoz webu
CSS styly
Jak psát web:
http://dusan.pc-slany.cz/internet/
Píše Yuhů: autorova stránka, mail: dusan@pc-slany.cz
Poslední aktualizace 03.09.2001