|
|
|
|
Inleiding |
|
|
Met zogenaamde 'frames' is het mogelijk het scherm in vensters te verdelen, die apart van
elkaar kunnen scrollen. Dit is bijvoorbeeld handig voor links de inhoudsopgave en rechts de
echte pagina. Als de pagina dan naar beneden wordt gescrolld blijft de inhoudsopgave altijd
zichtbaar.
Frames worden ondersteund door Netscape Navigator vanaf versie 2 en Microsoft Internet Explorer vanaf versie 3.
<FRAMESET> |
|
|
Begin van de definitie van de frames.
Attribuut | Resultaat |
COLS= | het scherm verdelen in kolommen:
"20%,80%" | 2 kolommen, de linker is 20% van de totale breedte, de rechter 80% |
"20,50%,*" | 3 kolommen, de linker is 20 pixels breed, de middelste 50% van de totale breedte, en de rechterkolom is zo breed als de ruimte die dan nog over is |
|
ROWS= | het scherm verdelen in rijen. De werking is verder hetzelfde als COLS |
BORDER="n" | de breedte van de framebalk in pixels |
BORDERCOLOR="kleur" | de kleur van de framebalk. kleur kan een zelf gemixte kleur (="#rrggbb") zijn of een kleur uit de kleurentabel |
FRAMEBORDER="no" | wel (="yes") of geen (="no") framebalken |
FRAMESPACING="n" | de ruimte tussen de frames |
* | Hieronder staat de globale indeling van een pagina met een <FRAMESET>.
De attributen in de tags zijn weggelaten.
<HTML>
<HEAD>
<TITLE>Paginatitel</TITLE>
</HEAD>
<FRAMESET>
<FRAME>
<FRAME>
<NOFRAMES>
<BODY>
Hier komt een pagina die alleen zichtbaar is als de browser geen frames ondersteund
</BODY>
</NOFRAMES>
</FRAMESET>
</HTML> |
<FRAME> |
|
|
De inhoud van de frames definiëren.
Attribuut | Resultaat |
SRC="bestand.html" | de locatie van het html-bestand dat in het frame moet komen |
NAME="naam" | de naam van het frame. Naar deze naam moet je verwijzen als je vanuit een ander frame de inhoud van dit frame wil veranderen (zie ook bij TARGET) |
SCROLLING="auto" | aangeven of er altijd (="yes"), nooit (="no") of alleen als het nodig is (="auto") scrollbalken moeten verschijnen |
NORESIZE | als je dit toevoegt kan de bezoeker het frame niet van grootte veranderen |
MARGINHEIGHT=n | de afstand tussen het frame en de inhoud van het frame (boven en onder) |
MARGINWIDTH=n | de afstand tussen het frame en de inhoud van het frame (links en rechts) |
* |
Voor helemaal onzichtbare frames (in zowel Netscape als Internet Explorer) kan je het volgende voorbeeld gebruiken:
<FRAMESET COLS="100,*" FRAMESPACING=0 BORDER=0 FRAMEBORDER="no">
<FRAME SRC="frame1.html" NAME="frame1">
<FRAME SRC="frame2.html" NAME="frame2">
</FRAMESET> |
* |
Microsoft Internet Explorer laat standaard een randje van 1 pixel over tussen de rand en de inhoud van een pagina. Netscape
Navigator hanteert een grotere rand (ongeveer 5 pixels). Als je bij een frame MARGINWIDTH=1 MARGINHEIGHT=1 toevoegt,
laat Netscape Navigator ook maar een randje van 1 pixel over, met als gevolg dat je pagina er in Internet Explorer en in
Netscape hetzelfde uitziet! Dit is heel handig als je bijvoorbeeld een afbeelding op een exacte positie boven een achtergrondafbeelding
wil plaatsen. |
<NOFRAMES>tekst</NOFRAMES> |
|
|
tekst wordt getoond als de browser geen frames ondersteunt.
Dit kan een melding zijn dat deze pagina's frames gebruiken en een link naar de pagina zonder frames.
Er kan dan nog een <BODY> en </BODY> toegevoegd worden (zie
het voorbeeld).
</FRAMESET> |
|
|
Einde van de definitie van de frames.
TARGET="naam" |
|
|
TARGET is een extra attribuut voor een link. Dit attribuut geeft aan
in welk frame de link geladen moet worden als die aangeklikt wordt. Er zijn ook speciale 'targets':
TARGET="framenaam" | de link wordt getoond in het frame met de naam "naam" |
TARGET="_top" | de link wordt getoond op het hele scherm (alle frames worden gewist) |
TARGET="_self" | de link wordt getoond in het frame waar de link staat |
TARGET="_parent" | de link wordt getoond met frames van vorige <FRAMESET> (bij meerder frames in elkaar) |
TARGET="_blank" | de link wordt getoond in een nieuw venster zonder naam |
Als de framenaam niet bestaat wordt er een nieuw venster van de browser gestart en wordt de link daarin getoond. Dat venster
krijgt dan de naam die achter de TARGET is opgegeven.
* |
Als de meeste of alle links naar hetzelfde frame verwijzen, is het handig om een
<BASE TARGET="framenaam"> toe te voegen in de <HEAD>-sectie
van het document. Voor meer informatie over het gebruik van deze tag zie de Algemeen-pagina.
|
* | <A HREF="inhoud.html" TARGET="inhoud">tekst</A> |
JavaScript tip |
|
|
Stel, je hebt vier frames die we voor het gemak even frame1, frame2, frame3
en frame4 noemen. Als je wilt dat er in twee frames tegelijkertijd een ander
document geladen moet worden, dan lukt dat niet met HTML.
Het kan echter wel met JavaScript:
<HTML><HEAD><TITLE>Titel</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
function LaadTweeFrames(EersteBestand,TweedeBestand) {
parent.frame1.location = EersteBestand;
parent.frame2.location = TweedeBestand;
return true;
}
//-->
</SCRIPT>
</HEAD><BODY>
<A HREF="JavaScript:LaadTweeFrames('file1.html','file2.html')">Klik!</A>
</BODY></HTML>
Op deze manier gebeurt er echter niets als de browser geen JavaScript ondersteunt
of als die optie uitstaat. Dat kan je verhelpen door de op één na laatste regel
te veranderen in:
<A HREF="index2.html" TARGET="_top" onClick="LaadTweeFrames('file1.html','file2.html'); return false">Klik!</A>
Op deze manier wordt de JavaScript code gewoon uitgevoerd als er op de link geklikt wordt, maar door de
return false wordt de link zelf niet uitgevoerd! Zo wordt het bestand index2.html geladen
(met een nieuwe frameset) als er geen JavaScript ondersteund wordt.
|