Hej, Ty uMíš HTML? (XI.) Rámce a provázaná okna I. Rámce (frames) přinesly do oblasti programování pro WWW nové možnosti, které příznivě ovlivňují zejména jednoduchost uživatelské obsluhy stránek a rychlost, jakou se s nimi pracuje. Přestože přinášejí takto četné výhody, nejsou používány příliš často - jedním z důvodů je, že není vždy jednoduché stránky dobře naprogramovat. ![]() Kapitola XVII. - Úvod k rámcům a provázaným oknům Než prohlížeče začaly rámce podporovat (první byl pochopitelně Netscape, a to s Navigatorem ve verzi již 2.0), neexistoval jednoduchý, platformně nezávislý prostředek, jak do jednoho okna umístit více HTML dokumentů. Rámce umožňují rozdělit pracovní plochu browseru do několika oddílů (rámců), z nichž každý může obsahovat jiný HTML dokument z jiného souboru na disku serveru. Pokud vám to zní zmateně, tak v další kapitole pochopíte, kde jsou výhody. Zároveň však přibyla možnost ovládat z jednoho okna obsah jiného okna prohlížeče. V tomto případě může být oním oknem i rámec, který je ve skutečnosti v okně stejném. Je to možné díky novému parametru hyperlinkového příkazu <a></a>. Parametr je TARGET="", jehož hodnota obsahuje buď název okna (rámce), nebo nějakou předem definovanou hodnotu, které si popíšeme později, a je tam proto, aby prohlížeč věděl, kam má odkaz přesměrovat. Tedy například příkaz: <a href="<A HREF="http://www.idg.cz"" target="_parent">http://www.idg.cz" target="win2">IDG přesměruje domovskou stránku IDG CZ do okna (nebo rámce) s názvem win2. Druhým přidaným příkazem je <BASE> zařazovaný do hlavičky dokumentu (mezi smyboly <head></head>). Ten má dva parametry: HREF="" mění základní URL dokumentu, a konečně TARGET="", který definuje implicitní okno (rámec) pro všechny odkazy. Prohlížeč povoluje jako hodnoty parametrů TARGET také tyto hodnoty s předem definovaným výsledkem: _blank - odkaz bude přesměrován do nového okna _self - odkaz bude přesměrován do stejného okna nebo rámce (ignoruje definici <BASE>) _parent - odkaz bude přesměrován do nadřazeného okna (pro případ, že je více definicí rámců) _top - odkaz bude přesměrován do celého okna. Všechny ostatní hodnoty budou brány jako názvy rámců nebo oken. Kapitola XVIII. - Popis V této kapitole budou podrobněji popsány výše uvedené možnosti. Provázaná okna Představte si, že máte vytvořenou stránku, která obsahuje odkazy na jiné servery. Přitom však nechcete, aby uživatel ztratil kontakt s vaší stránkou při přechodu přes vypsané odkazy. Proto přesměrujete podle výše uvedeného popisu všechny odkazy do samostatných oken (či třeba jen jednoho). Všechny odkazy s uvedeným stejným cílem budou aktualizovat jedno stejné okno. Samostatných oken můžete využít také tehdy, když stránky, na které odkazujete, obsahují rámce a vy nechcete strukturu vaší stránky porušovat a přitom vše správně zobrazit. Zde je příklad stránky, jež obsahuje čtyři odkazy, z nichž vždy dva směřují do stejného okna: <html> <body> Odkazy na stránky IDG: <a href="<A HREF="http://www.idg.cz"" target="_parent">http://www.idg.cz" target="idg">Domovská stránka IDG <a href="<A HREF="http://www.idg.cz/i4u/"" target="_parent">http://www.idg.cz/i4u/" target="idg">Domovská stránka Internet 4U Odkazy na stránky počítačových výrobců: <a href="<A HREF="http://www.autocont.cz"" target="_parent">http://www.autocont.cz" target="pc">Autocont <a href="<A HREF="http://www.ibm.cz"" target="_parent">http://www.ibm.cz" target="pc">IBM v ČR </body> </html> Konečně rámce ![]() Stránka s rámci v praxi funguje tak, že vytvoříte zvláštní soubor, do kterého uvedete, jak má rozložení na rámce vypadat a jaké soubory budou v okamžiku nahrání dokumentu v jednotlivých políčkách. Uživateli poté předáte adresu tohoto souboru a prohlížeč se již o správné načtení souborů postará (pokud rámce podporuje - pochopitelně). Po zobrazení stránky s rámci již můžete v každém z nich obsah měnit. Pokud ale budete potřebovat jiné rozložení rámců, musíte nahrát jinou stránku. HTML rovněž nepřináší možnosti jak aktualizovat více okének najednou, to se však dá snadno obejít například pomocí programovacího jazyka JavaScript, o tom ale případně jindy. Základním příkazem pro konstrukci rámců je párový symbol <frameset></frameset>. Toto je jeden z mála příkazů, jež můžete uvnitř rámcového souboru použít. Příkaz nahrazuje symbol pro definici těla souboru. Jeho použití je však možné vícenásobně, podle složitosti struktury, kterou vytváříte. Má následující parametry: BORDER="" - velikost rámečků mezi rámci v bodech. COLS="-,-,..." - definuje počet sloupců (svislých rámců ) a jejich rozměry v bodech, nebo procentech. Hodnoty jednotlivých sloupců jsou oddělené čárkami a jejich počet není omezen. ROWS="-,-,..." - funguje úplně stejně, jen dělí okno na rámce horizontální. Hodnotu udávající šířku nebo výšku rámce můžete zapsat buď takto: "30", což znamená 30 obrazových bodů, nebo takto: "30%", což znamená 30 procent z celkové šíře okna nebo nadřazeného rámce, anebo takto: "*", což ponechává volbu na prohlížeči (například zbytek okna, nebo při zápisu "*,*" jednu polovinu pro každý, atd.). Druhý příkaz je nepárový <frame>. Ten slouží k bližšímu určení vlastností jednotlivých rámců. Uvádí se uvnitř příkazu <frameset>, má několik parametrů: SRC="" - udává URL dokumentu, který bude do rámce nahrán SCROLLING="yes/no/auto" - udává, zda má být možnost posouvat s dokumentem v rámci NORESIZE - vypíná možnost měnit velikost rámce uživatelem MARGINHEIGHT="" - velikost okraje v počtech bodů zespodu a seshora MARGINWIDTH="" - velikost okraje v počtech bodů zleva a zprava NAME="" - udává jméno rámce (pro přesměrování odkazů) Pro každý rámec musíte uvést příslušnou definici a to v pořadí, v jakém jsou definovány.
Bedřich Smetana |