× Aktuálně z oboru

SHIELD Experience Upgrade 7 – méně hledání a více zábavy [ clanek/2018052902-shield-experience-upgrade-7-mene-hledani-a-vice-zabavy/ ]
Celá zprávička [ clanek/2018052902-shield-experience-upgrade-7-mene-hledani-a-vice-zabavy/ ]

HTML - 6. lekce

[ http://programujte.com/profil/161-ondrej-satera/ ]Google [ ?rel=author ]       [ http://programujte.com/profil/118-zdenek-lehocky/ ]Google [ ?rel=author ]       15. 11. 2005       21 779×

Rámce..

Rámce

Myslím, že rámce zná každý. Je to totiž jeden z nejpoužívanějších způsobů, jak organizovat webovou stránku. Ale zároveň je hodně webmasterů (tvůrců webových stránek), kteří je zatracují, protože je s nimi dost problémů, ale pro jednoduchý web je to nejjednodušší řešení.

Rámce se používají většinou ve dvou formách:

  1. levé menu a vpravo hlavní strana
  2. hlavička a pod ní hlavní strana (někdy i s patičkou na dolní straně okna)
  3.  

Kód

Následující kód musí být uvedený mimo tělo dokumentu. Buď přímo v hlavičce HEAD nebo mezi koncem hlavičky a začátkem těla BODY. Kód s levým menu vypadá takto:


<head>
</head>
<frameset cols="30%,*" border=3>
  <frame src="menu.htm" name="menu" scrolling=auto noresize>
  <frame src="main.htm" name="main" scrolling=auto>
</frameset>
<noframes>
<body>
text pro prohlížeče nepodporující rámce
</body>
</noframes>

Teď si probereme tagy hezky popořadě:

tag: parametry: možné hodnoty: informace: poznámky:
frameset
párový tag, uvozující rámce
cols 25%, 30%, 70%... sloupec rámce* počet % = kolik zabere v okně, pokud použijete * zbytek okna, zabere druhá část rámce
rows 30%,* řádky rámce*
border 1,2,3.. šířka okraje mezi rámci -
frame
rám
src relativní nebo absolutní adresa jaká stránka se zobrazí v rámu -
name menu, main... jméno rámu je důležité při odkazování
scrolling yes, no, auto jestli bude rám rolovat pokud necháte auto, bude rolovat automaticky
noresize nemá jestli půjde měnit u rámu šířka nebo výška -
noframes nemá nejsou text pro prohlížeče nepodporující rámce záleží na vás, většina prohlížečů už je totiž podporuje

* Pokud chcete levé menu, pochopitelně nebudete určovat řádky rámců, když ale hlavičku, tak je určit musíte a sloupce ne.

Odkazování v rámcích

A jsme u prvního problému u rámců - odkazování. Pokud totiž použijete např. levé menu (u patičky to platí taky) a necháte odkaz bez parametru target, otevře se odkazovaná stránka do rámu, ve kterém je odkaz!


<a href="nejaka_stranka.htm"> - špatný odkaz
<a href="nejaka_stranka.htm" target="main"> - takhle je to správně (odkaz se otevře do hlavního okna)
<a href="nejaka_stranka.htm" target="_parent"> - stránka se otevře do nadřazeného rámu (také hlavní okno)

Univerzálnost rámců

Ale rámce mají jednu velkou výhodu. Pokud totiž chcete mít u každé stránky stejné menu, můžete ho buď všude nakopírovat, ale když ho pak chcete měnit, musíte upravit všechny soubory nebo pokud použijete rámce, uděláte si jedno menu a když ho pak chcete upravit, stačí předělat jeden soubor a menu se změní na každé stránce. Dobré ne ? :)

Další problémy

  1. tisk
    Pokud chcete vytisknout celý obsah okna, budete mít neřešitelný problém, tisknout lze vždy jen jeden rám.
  2. vyhledávací roboti
    Když vyhledávač najde něco na vaší stránce, tak otevře jen tu stránku, na které to je, ale nepř. menu tam nebude.
  3. adresa není vidět
    V panelu Adresa je stále ta stejná adresa a nemění se při odkazování, tohle se někdy hodí, ale většinou je to dost otravné, zvlášť pro návštěvníky vašeho webu (např. pokud si chce uložit do oblíbených jednu z vnořených stránek).

Jak vidíte, rámce mají pár výhod, ale nedoporučuji je používat, organizace stránek se dá udělat i jinak (např. pomocí PHP s CSS pozicováním), pro začátečníky jsou ale rámce to nejlepší a nejjednodušší. Záleží na vás :).

Úkol

  • Vytvořte stránku, která bude mít:
    • hlavičku, ve které bude otevřený váš oblíbený vyhledávač
    • hlavní stranu uprostřed s hlavní stranou webu Programujte.com
    • a patičku, ve které bude co si vyberete

  • Článek stažen z webu Programujte.com [ http://programujte.com/clanek/1970010119-html-6-lekce/ ].