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.