9. Frames/rammer

Frames kan sammenlignes med tabeller, der er dog den forskel, at cellerne i Frames er forskellige HTML dokumenter. Et godt eksempel på en side med Frames er "HTML OG HJEMMESIDER", som du er på lige nu. Den er opbygget af 5 forskellige frames, 3 faste frames og 2 som du kan ændre indholdet i. Frames er en kompliceret sag, og man kan ikke forlange af nogen at deres første side med frames fungerer perfekt. Derfor vil jeg kun forklare de basale funktioner, og springe de mere avancerede over. Men hvis du ønsker mere viden om dette område, vil jeg foreslå dig at kigge i Links ude til venstre.
Opsætningen af de mange frames på en side som denne, bliver styret fra én central fil. Denne fil skal hentes som det første dokument, da det er den som sørger for at åbne de resterende dokumenter de korrekte steder. Jeg kan bedst illustrere det med et eks. fra disse sider. Her er den centrale frames opsætning for disse sider:
<HTML>
<HEAD>
<TITLE>HTML OG HJEMMESIDER</TITLE>
</HEAD>

<frameset cols="150,*,150"
marginwidth="0" marginheight="0"
frameborder="no" border="0">

<frame name="venstre"
src="venstre.htm" scrolling="no"
noresize>

<frameset rows="50,*,50"
marginwidth="0" marginheight="0"
frameborder="no" border="0">

<frame name="top" src="top.htm"
scrolling="no" noresize>

<frame name="start"
src="start.htm" scrolling="auto"
noresize>

<frame name="bund"
src="bund.htm" scrolling="no"
noresize>

</frameset>

<frame name="højre"
src="hojre.htm" scrolling="no"
noresize>

</frameset>

<BODY>
</BODY>
</HTML>
Umiddelbart ser det nok enormt forvirrende og uforståeligt ud, men du skulle helst være en smule mere afklaret lige om lidt.

En hurtig gennemgang af de brugte tags:
De 3 første tag's kender du fra tidligere, nemlig <HTML>, <HEAD> og <TITLE>, så dem springer jeg over.

<frameset>
- Dette er det væsentligste tag i opsætningen af frames, det er her bredden på rækker og kolonner bliver defineret, og det er her rammetykkelsen bliver fastsat.

<frame>
- Her defineres den enkle frames navn og hvilket HTML dokument den skal indeholde.

</frameset>
- Herfra gælder specifikationerne i den tilhørende <frameset> ikke længere.



Brugen af <frameset> tag'et:
I det brugte eksempel er der flere ting man skal ligge mærke til, først og fremmest: cols="150,*,150" som definere bredden på de 3 kolonner, første kolonne er 150 pixels bred, næste er det resterende antal pixels bred, og den sidste er 150 pixels bred. Det er også muligt at specifere bredden med % angivelser, så det f.eks. ville se sådan her ud: cols="25%,*,25%". I den anden <frameset> står der rows="50,*,50", den gør ganske enkelt det, at den fortæller at der skal være 3 rækker mellem de yderste kolonner. At det er mellem de yderste kolonner, det kan man se på placeringen af den frameset med rows definationen, den står mellem definationerne af højre og venstre kolonne.
Det er selvfølgelig muligt at lave færre eller flere frames, så ændrer du blot på cols eller rows specifikationerne, et eks.: cols="100,*" vil lave en kolonne ude til venstre med en bredde på 100 pixels, og det samme kan man gøre med rows.
marginwidth="0" marginheight="0" fortæller at der ikke skal være mellemrum mellem frames'ene, hverken i bredden eller højden.
frameborder="no" border="0" er lidt et kapitel for sig, da de i teorien ikke er nødvendige begge to, men pga. uoverensstemmelser mellem Netscape og Microsoft, er det nødvendigt at helgardere sig, og skrive dem begge. Deres funktion er enkel, de fortæller blot at der ikke skal være en ramme rundt om frames'ene, du kan sætte den til yes eller 1, og du vil så få en ramme med en tykkelse på 1 pixel.

Brugen af <frame> tag'et:
Det er her den enkelte frames indhold bliver defineret. Det er her der bliver fastsat hvilket HTML dokument den skal indholde og den får tildelt et statisk navn. Det er lettest at illustrere med eksemplet fra før: <frame name="venstre" src="venstre.htm" scrolling="no" noresize>
Her kan du se, at navnet på denne frame er venstre, indholdet er et HTML dokument ved navn venstre.htm, man skal ikke kunne "scrolle" altså bladre i den, og man skal ikke kunne ændre dens størrelse. Hvis man sætter scrolling="yes", så får man en frame man kan bladre i, og man kan ligeså gøre sådan her: scrolling="auto", så vil der kun komme en scroll bar hvis teksten i frame'en går uden for billedet.

Frames er som jeg sagde i starten, en ret kompliceret sag, og det er en god ide, at "stjæle" lidt fra andre, f.eks. kan du bygge din side op udfra eksemplet øverst, hvor du bare tilpasser koden efter dine behov.