![]() | Listor | Formulär | ![]() |
![]() | |||
Använda ramar | |||
Den här webbsidan är gjord med ramar Den består av följande tre html-sidor:
I det här avsnittet kommer jag att använda popup-fönster för att visa hur olika ramsidor kommer att se ut. Varför använder man ramar?I HTML-skolan har jag valt att lägga länkarna till alla olika avsnitt för sig, i en ram till vänster. Om de här länkarna inte låg i en egen ram, utan på själva "huvudsidan", skulle två saker inträffa:
Det jag här kallar ramsida är hela den uppsättning av html-sidor som öppnas samtidigt: ramdokumentet och de sidor som laddas i de minst två ramarna. En ramsida kommer därmed att bestå av minst tre html-sidor. Jag skall nu göra en ramsida med en list till vänster och en huvudsida. Listen till vänster kallar jag list.html och huvudsidan får heta huvud.html. Själva ramdokumentet som laddar in dessa sidor får heta home.html. Först gör jag då två nya sidor, list.html och huvud.html. Båda sidorna är till en början tomma och koden till dem ser ut som vanligt - med ett undantag. Det här är koden till huvud.html: | |||
<HTML> | |||
Och det här är koden till list.html: | |||
<HTML> | |||
Du ser att den enda skillnaden mellan dem - och det enda som skiljer från de tidigare sidor du har gjort - är <BASE TARGET="main"> i list.html. Du kommer alldeles strax att förstå vad den här snutten gör för nytta. Nu när de här båda sidorna är sparade, skall vi nämligen ge oss på själva ramdokumentet - det som gör alltsammans till en ramsida. Du ser koden här nedanför. Under rutan kommer förklaringarna. För att det skall bli lättare att koppla fram och tillbaka mellan koden och förklaringarna, har jag numrerat raderna i koden. Numreringen skall inte vara med i den "riktiga" koden. | |||
1. <HTML> | |||
Den här sidan sparar jag som home.html. Ytligt sett ser det ut som en vanlig html-sida, men som du ser finns det ingen BODY-tagg. I stället finns en FRAMESET, och det är den som innehåller allt som ramdokumentet "behöver veta". Rad 5 <FRAMESET COLS="150,*">COLS betyder att sidan skall delas i kolumner. COLS="150,*" innebär att sidan delas i två ramar, där den vänstra är 150 pixlar bred medan den högra - * - tar resten av utrymmet i webbläsarfönstret. Om jag ville dela sidan i tre ramar, skulle jag i stället skriva till exempel COLS="150,*,120". Det skulle ge en 150 pixlar bred ram längst till vänster, en 120 pixlar bred ram längst till höger och resten av webbläsarfönstrets bredd i en ram i mitten. Du kan ange uppdelningen i procent i stället för pixlar, till exempel COLS="30%,*". Om du i stället vill dela sidan i ramar på höjden - i rader - ändrar du COLS till ROWS, men vi återkommer till det. Rad 6 <FRAME NAME="contents" TARGET="main" SRC="list.html">Här finns uppgifterna som gäller för den första ramen (FRAME). NAME talar om vad den heter, TARGET visar i vilken ram länkar från den här ramen skall öppnas och SRC talar om vilken sida som skall laddas i just den här ramen. TARGET="main" kan du ha med här eller ta bort - det gör du som du vill. I sidan list.html finns ju koden <BASE TARGET="main"> och den gör samma sak som TARGET="main" i FRAMESET-koden: Den säger att länkar i första hand skall öppnas i den ram som heter "main". Om du vill öppna enstaka länkar på en annan plats, kan du ange det direkt i <A>-taggen. Rad 7 <FRAME NAME="main" SRC="huvud.html">Här finns uppgifterna som gäller för den andra ramen. Raden anger vad ramen heter och vilken sida som skall laddas i den när ramsidan öppnas. Rad 8 </FRAMESET>Här slutar FRAMESET-koden. Men om man inte kan hantera ramar?Fortfarande används äldre webbläsare som saknar stöd för ramar. Du kan lägga in en extrasnutt på din ramsida, för att hänvisa dessa besökare till en annan sida. Den snutten läggs inom taggarna <NOFRAMES> ... </NOFRAMES> och webbläsare som hanterar ramar hoppar över den helt. Så här kan det se ut: | |||
...... <NOFRAMES> </FRAMESET> | |||
Observera att BODY-taggarna finns med här, men de ligger inom NOFRAMES-taggarna som hoppas över av webbläsare som kan hantera ramar. FRAMESET-taggen skall inte innehålla någon BODY-del. | |||
Stila till ramsidan När du har gjort de här tre sidorna - home.html, list.html och huvud.html - och öppnar home.html i webbläsaren, har du en sida som är delad i två delar med en tydlig kantlinje mellan de båda ramarna. Nästan alla ramsidor blir snyggare om man tar bort kantlinjen. Det gör du med ett av de många attributen till FRAME. Först attributen till FRAMESET
| |||
Alldeles strax skall du lära dig hur man kan göra ramsidor mycket mer sammansatta, men ta först en titt på Haj i Hjälmaren, som nu har blivit en ramsida. | |||
En massa ramar i varandra FRAMESET-taggarna går att kapsla in i varandra - på samma sätt som när du gjorde listor i flera nivåer. Det går alltså att lägga nya block av <FRAMESET> ... </FRAMESET> inne i tidigare block, och på så sätt få fram en ramsida som blir nästan hur komplicerad som helst. Jag visar detta med ett popup-fönster. Öppna det och låt det ligga öppet medan du läser koden, så kan du direkt se vad som händer. Observera att jag har "städat bort" nästan alla attribut ur koden, för att det skall bli lättare att koncentrera sig på uppbyggnaden. Ramsidan består av 17 html-sidor med 16 ramar. | |||
1 <FRAMESET ROWS="64,39%,15%,*"> | |||
Indragen är gjorda för att förtydliga, och siffrorna i grönt - som inte skall vara med i koden - visar var de olika delarna börjar (1) och slutar (/1). Så här krånglig behöver man sannolikt aldrig göra en ramsida... | |||
![]() | |||
![]() | Listor | Formulär | ![]() |
![]() | |||
SupportData.Net |