weballey logo
 
left Frames - intro backnext right
homesearchsite mape-mail
< intro >
targets
nesten
esthetica
noframes
nadelen
samenvatting
tags
slot
      Ik hou zelf niet zo van frames. De layout van gewone webpagina's kun je veel beter doen met tables. Maar er zijn situaties waarin het gebruik ervan acceptabel of zelfs onvermijdelijk is. Als je bijvoorbeeld externe links en de gelinkte pagina's tegelijkertijd wilt laten zien. Heen en terug schakelen is de enige ander optie. Wat heel lastig kan zijn. En voor je het weet is je bezoeker vertrokken.
    Frames zijn een middel om meerdere pagina's in een browservenster te laten zien. Je maakt een webpagina met subvensters, waarin je andere pagina's laat zien. Die pagina's kunnen ook weer frames bevatten. De eerste is eigenlijk helemaal geen gewone webpagina, maar een "frameset", die een of meerdere pagina's bevat. Om frames te begrijpen, ie het belangrijk dat je dit concept doorziet.

Er is geen body
    Een frameset pagina is anders dan een gewone webpagina. Er is namelijk geen BODY gedeelte, zoals je zou verwachten. In plaats daarvan is er een frameset, die aangeeft waar de browser andere pagina's moet laten zien. Als er een BODY tag voor de frameset staat, doet de browser niets met de frameset. Een BODY tag na de frameset wordt genegeerd door de browser, je krijgt dan de frameset te zien.

Show me! <HTML>
<HEAD>
<TITLE>A simple frame set</TITLE>
</HEAD>
<FRAMESET>
<FRAME SRC="page.html">
</FRAMESET>
<HTML>

    Wat je hierboven ziet, is in feite de eenvoudigste frame pagina die je kunt bedenken. Een frame pagina wat slechts een frame bevat. Je ziet dat de BODY is vervangen door de frameset. Die begint en eindigt met de FRAMESET tag. Daarbinnen staat de referentie naar de pagina, die in het frame getoond wordt, aangegeven met de FRAME tag.
    De attribute SRC (source) specificeert de te framen pagina. Dit kan iedere te bedenken geldige URL zijn. Elke pagina die je in je browser kunt bekijken, kun je ook in een frame zetten. Een frame heeft weinig zin, dus laten we er eens een aan toe voegen. Sommige browsers accepteren zelfs geen frameset met maar een frame.

Show me! <FRAMESET COLS="50%,*">
<FRAME SRC="page1.html">
<FRAME SRC="page2.html">
</FRAMESET>

Rows and columns
    Om een tweede frame toe te passen, heb je een atrribute in de FRAMESET tag nodig. De COLS (kolommen) attribute vertelt de browser dat er twee of meer frames in de frameset staan. Deze komen naast elkaar te staan. De waarden in de COLS attribute bepalen de omvang van elk frame. Het eerste frame neemt hier 50% van het browser venster in beslag. De asterisk vertelt de browser, dat de reset van het venseter wordt gebruikt voor het tweede frame. Als je de COLS attribute niet gebruikt, of ongeldige waarden, wordt alleen het eerste frame getoond.

Show me! <FRAMESET COLS="50%,*" ROWS="50%,*">
<FRAME SRC="page1.html">
<FRAME SRC="page2.html">
<FRAME SRC="page3.html">
<FRAME SRC="page4.html">
</FRAMESET>

    In plaats van kolommen kun je ook rijen maken met de ROWS attribute. Je kunt ze ook beide gebruiken. De code hierboven maakt een frameset met vier frames, twee boven en twee onder. Je kunt zoveel frames gebruiken als je wilt, maar maak het niet te gek. Twee of drie frames is eigenlijk wel genoeg om te behappen door je browser. Frames kosten meer tijd om te laden, subpagina's worden pas geladen, nadat de frameset compleet is.

<FRAMESET COLS="*,50%,*">
<FRAMESET COLS="50,*,50" ROWS="50,*,50">
<FRAMESET COLS="*,3*">
<FRAMESET COLS="*,75%">

    Enkele andere mogelijkheden, probeer je voor te stellen wat ze doen. Of maak ze gewoon zelf. Opties drie en vier doen exact hetzelfde.

Zit daar niet te zitten, DOE iets!
    Als altijd is het een goed idee alles zelf uit te proberen wat je hier ziet. Je kunt niet leren zwemmen zonder natte voeten te krijgen. Typ de html code in in een tekst editor, en bekijk het resultaat in je browser. Denk erom dat je altijd meer dan een pagina nodig hebt: de frame pagina en de pagina's die in de frames getoond worden.

goto top  
leftCopyright © Gerben Hoekstra - Alle rechten voorbehouden backnext right