<<< Förra avsnittet | Innehåll | Nästa avsnitt >>> |
Ett typiskt användningsområde för Frames är att ha en innehållsförteckning i en separat ruta bredvid själva webbsidan. På så vis finns innehållsförteckningen alltid tillgänglig och behöver inte laddas om varje gång användaren byter sida.
Frames fungerar inte i alla webbläsare, och därför bör man vara försiktig med att använda den här funktionen. De användare som har webbläsare som inte stöder Frames kommer att få se en helt tom sida, såvida inte webbdesignern har lagt in ett alternativt innehåll speciellt för dem.
Det finns en annan orsak till att vara restriktiv med användningen av Frames: många användare, även bland dem som har webbläsare som klarar Frames, är irriterade på funktionen och undviker sidor som är designade med Frames. Därför bör du bara använda Frames om detta verkligen tillför något av värde till din sida.
I varje ruta på sidan laddas en komplett webbsida in. Varje sådan sida är alltså ett eget HTML-dokument.
Varken styrkoderna <BODY> och </BODY> eller någon annan styrkod eller text som normalt sett placeras inom dessa koder får finnas före <FRAMESET>, annars kommer hela uppdelningen i Frames att ignoreras av webbläsaren. <FRAMESET> måste alltså komma direkt efter <HEAD> </HEAD>.
<FRAMESET COLS="50%,50%"> Fönstret delas på bredden i två lika stora rutor.
<FRAMESET COLS="10%,80%,10%"> En smal ruta på vardera sidan och en bred i mitten.
<FRAMESET COLS="200,*"> En 200 pixlar bred ruta till vänster, och en så bred som fönstret tillåter till höger.
Man kan också göra tvärt om; dela in på höjden först och på bredden sedan. Det är också tillåtet att dela upp på bredden och höjden samtidigt i samma <FRAMESET> detta åstadkommer ett rutnät.
SRC="url" anger webbadressen till det dokument som ska laddas in i rutan. Den anges som vanligt antingen som relativ adress eller absolut adress. Rutor som saknar SRC kommer att visas som blanka rutor i den storlek som angetts i <FRAMESET>.
NAME="rutans_namn" används för att ge en ruta ett namn så att den kan bli refererad till från länkar i andra rutor inom samma fönster. Man behöver inte ange NAME, då blir rutan namnlös. Om man vill att länkar i en ruta ska göra så att webbsidor laddas in i andra rutor måste man namnge dessa. Namngivna rutor kan adresseras med TARGET (se nedan). Ett namn måste börja med en bokstav eller siffra och får bestå av bokstäver a-z, siffror, bindstreck och understreck.
Med MARGINWIDTH="value" och MARGINHEIGHT="value" kan man ange extra marginal mellan rutans kant och innehållet i rutan. MARGINWIDTH anger marginalen åt vänster och höger medan MARGINHEIGHT anger marginalen uppåt och nedåt. Värdet räknas i pixlar. Värdet kan inte vara mindre än ett. Anges inte MARGINWIDTH och MARGINHEIGHT kommer webbläsaren själv att avgöra vilken marginal som behövs.
Normalt sett drar webbläsaren en kantlinje mellan de olika rutorna i fönstret. Med FRAMEBORDER="0" anger man att rutan inte ska ha en kant. Observera att det ändå kan bli en kantlinje, ifall angränsande ruta har kantlinje specifierad, antingen genom att ha FRAMEBORDER="1" eller genom att sakna FRAMEBORDER-attributet.
SCROLLING="yes|no|auto" anger ifall rutan ska ha en rullningslist eller ej. Anges "yes" kommer rutan alltid ha en rullningslist, anges "no" kommer den aldrig ha det, och anges "auto" kommer webbläsaren sätta in rullningslister när det behövs. Anges inte SCROLLING alls kommer webbläsaren även då att sätta in rullningslister när det behövs.
Normalt sett kan användaren ändra storleken på en ruta genom att dra rutans kant till önskat läge. Om man anger NORESIZE i <FRAME>-koden så tillåts inte detta.
Var noga med att erbjuda ett vettigt alternativ här, speciellt på din webbplats framsida. Att bara skriva att besökaren har fel typ av webbläsare är oartigt. Om ditt frameset till exempel består av två rutor; en med en innehållsförteckning och en med själva sidorna så är en enkel noframes-lösning att erbjuda en länk till sidan med innehållsförteckningen. Om du har tillgång till server-side includes (se detta avsnitt) kan du rent av lägga in hela innehållsförteckningen som "include file".
Notera att man med <NOFRAMES> kan dölja innehåll för webbläsare som visar Frames, även på webbsidor som inte alls är indelade i rutor.
Kod |
---|
<HTML> <HEAD><TITLE>Firmans fina webbsida</TITLE></HEAD> <FRAMESET COLS="50%,50%"> <FRAMESET ROWS="50%,50%"> <FRAME SRC="allan.html" NORESIZE NAME="left-1"> <FRAME SRC="kakan.html" SCROLLING="yes" NAME="left-2"> </FRAMESET> <FRAMESET ROWS="33%,33%,33%"> <FRAME SRC="innehall.html" NAME="right-1"> <FRAME SRC="stork.html" NAME="right-2"> <FRAME SRC="http://en.annan.server.se/" NAME="right-3"> </FRAMESET> </FRAMESET> <NOFRAMES> <BODY BGCOLOR="#FFFFFF"> Detta är Firmans fina webbsida.<P> <A HREF="innehall.html">Innehållsförteckning</A> </BODY> </NOFRAMES> </HTML>
Webbläsarens fönster delas upp i fem rutor som fylls med var sin separat webbsida. |
---|
Om besökaren använder en webbläsare som inte stöder Frames, eller en där användaren kan välja att slå av Frames-funktionen, kommer hon att se den alternativa sidan. |
---|
Med attributen NAME och TARGET kan webbdesignern namnge de olika rutorna och sedan tvinga webbsidor att hamna i dessa. En rutas namn är inte det samma som fönstertiteln som anges med <TITLE>.
En rutas namn definieras med <FRAME NAME="rutans_namn"> (se ovan) och för att tvinga ett länkat dokument att hamna i just den rutan anger man TARGET i själva länken:
<A HREF="url" TARGET="rutans_namn">Allan tar kakan</A>När användaren klickar på texten Allan tar kakan kommer dokumentet med adressen "url" laddas in i rutan med namnet "rutans_namn".
Om alla (eller de flesta) länkar i en ruta ska ladda in dokument i en viss, annan ruta kan man ange <BASE TARGET="rutans_namn">
Anger man ett TARGET-attribut i en individuell <A>-kod har den företräde framför TARGET-attributet i <BASE>. <BASE> ska ligga i "head"-delen av dokumentet.
TARGET fungerar även i en client-side imagemap. Exempel: <AREA SHAPE="rect" COORDS="12, 10, 25, 30" HREF="url" TARGET="rutans_namn">
TARGET kan också sättas i styrkoden <FORM>. Detta gör att resultatet från ett formulär i en ruta (det som servern skickar tillbaka till användaren efter att hon klickat på "submit") hamnar i en annan ruta. Exempel: <FORM ACTION="url" TARGET="rutans_namn">
Om man anger en TARGET-länk till ett rute-NAME som inte finns kommer istället ett nytt fönster att öppnas som då tilldelas det namnet.
<<< Förra avsnittet | Innehåll | Nästa avsnitt >>> |