Home
Web Hosting
Hosting Pakketten
Waarom Kiest U Ons?
Online beheerpaneel (zelf beheren)
De verschillen
Reseller brons Reseller zilver Reseller goud
Reseller goud Wordt Een Reseller|
Slot Assumburgpad 40 |
htmlcursusFrames Middels frames is het mogelijk om een site in meerdere pagina's te verdelen. Hierdoor kan het nog overzichtelijker en makkelijker worden. De pagina kan door middel van tabellen worden ingedeeld, maar ook met behulp van frames. De pagina wordt verdeeld in andere 'sub'pagina's.
<FRAMESET> Om
frames aan te maken op pagina beginnen we altijd met de label <FRAMESET>
en eindigen we met </FRAMESET>, hiertussen gebeurd het allemaal.
Aan deze label wordt de attribuut ROWS="x%, x%" toegevoegd om deze
horizontaal (rijen) te verdelen. Of de attribuut COLS="x%, x%" gebruikt
om het geheel vertikaal (kolommen) te verdelen. Ik gebruik op
dit moment procenten bij ROWS en COLS, maar pixel-maten zijn hier
ook van toepassing, hierover later meer. Daarna worden zoveel
pagina's opgevraagd als er opgegeven zijn in COLS of ROWS, in dit
geval twee. Dit gebeurd door <FRAME SRC="pagina.html"> in
te voegen. Hierdoor worden de pagina's ingeladen in de desbetreffende
pagina. Het geheel wordt afgesloten door de label </FRAMESET>. <HTML> <FRAMESET
ROWS="20%, 80%"> </HTML> Klik hier voor dit voorbeeld. Goed, we hebben nu dus een pagina verdeeld in twee delen. Boven en onder. U ziet dat er geen BODY element wordt gebruikt. En het bovenstaande HTML-dokumentje is het enige wat nodig is om de twee andere dokumenten te openen. Er is maar weinig fantasie nodig om te bedenken wat hier allemaal mee mogelijk is. In het voorbeeld heb ik de ROWS (rijen) verdeeld met 20% voor boven en 80% voor onder. Dit wordt altijd automatisch aangepast als de browser vergroot/verkleind wordt. Het feit dat we twee waardes aangeven (welke ook pixels hadden kunnen zijn) betekend automatisch dat er ook twee pagina's geopend moeten worden. Daarom komt u tweemaal FRAME SRC tegen. Als wij met pixels gaan werken of een combinatie hiervan, bedenk dan dat je uit moet komen op een vol venster. Met procenten is dit simpel, maar met pixels zorgt u ervoor dat er 'ergens' een wildcard inzit. Stel dat u de pagina wilt opdelen in drie kolommen. Dan kan dit als volgt: COLS="100, 150, *". De 1e kolom wordt 100 pixels, de 2e 150 en de 3e de overgebleven ruimte. Dit is afhankelijk van de breedte het venster. Let er op dat de afmetingen altijd tussen aanhalingstekens worden geplaatst en onderling met een komma scheidt. Omdat wij uiteraard niet kunnen weten met welke monitor deze pagina wordt bekeken, is het raadzam, bij gebruik van afmetingen met pixels, altijd tenminste 1 variable afmeting (asterisk of wildcard) te gebruiken. <FRAME SRC="pagina.html"> De pagina's die worden opgeroepen door middel van FRAME SRC, en die worden gebruikt in de frame zijn gewone pagina's. En kunnen ook alszodanig wordt gemaakt. Alle mogelijkheden die voor een normale pagina gelden, gelden ook voor deze pagina's. Inclusief de achtergronden, afbeeldingen, links, vet, italic enz.
TARGET="..." Iedereen
kan zich voorstellen dat deze frames ideaal zijn voor bv. een inhoudsopgave.
Aan de linkerzijde de inhoud en als een bezoeker hier een link aankiest
dan komt de tekst aan de rechterzijde. Dit kan gelukkig. Maar er
moet wel aan de link worden verteld waar deze geopend moet worden.
Anders zou deze in dezelfde frame worden geopend. En dit wordt eigenlijk
al bepaald op het moment dat FRAME SET wordt gedefineerd. <HTML> <FRAMESET
COLS="15%, 85%"> </HTML> Door in een link de toevoeging target="rechts" te gebruiken zal er gerefereerd worden naar het betreffende frame (<A HREF="pagina.html" target="rechts">link</A>). Dus pagina.html zal worden geopend in het frame welke rechts heet. Er zijn trouwens meer mogelijkheden met targets. target="_new" zal de pagina in een nieuw venster openen, target="_top" zal de pagina in hetzelfde venster openen,... dus in principe over alles heen.
<NOFRAME> </NOFRAME> Helaas, maar niet iedere (vooral oudere) browser ondersteund de FRAME SET. Dat is jammer. Deze bezoekers zien dus werkelijk helemaal niets. Om hier toe in te voorzien is er een mogelijkheid geschapen. De label NOFRAME. Om ervoor te zorgen dat gebruikers van een andere browser niet tegen een wit (of grijs) scherm aan te laten staren kunnen wij na de FRAME SET en voor de pagina-afsluiten NOFRAME opgeven. Hiertussen kunnen wij de tekst (en afbeeldingen en links) invullen. Het geheel worden afgesloten met </NOFRAME>. Om te kijken of dit wel goed is gelukt kan men dit testen met een oude browser. Het zou er dan als volgt uit kunnen zien: <HTML> <FRAMESET
COLS="15%, 85%"> <NOFRAME> Hier komt de tekst welke is bedoeld voor gebruikers die een browser hebben die geen frames ondersteunt. </NOFRAME> </HTML>
<NAME="x> Als
de homepage in twee frames, wordt verdeeld met links een kleinere
frame waarin de inhoudsopgave komt met hyperlinks naar je overige
pagina's, en rechts een groot frame waarin deze pagina's geopend
dienen te worden. Hiervoor worden dus drie html-bestanden aangemaakt.
Een homepage (index.html) die een pagina op deze wijze in tweeën
verdeeld zou er dus als volgt uit kunnen zien: <HTML> <NOFRAME> </HTML>
Wanneer iemand deze pagina oproept zal zijn/haar scherm in tweeën
worden gesplitst. Links een kolom van 150 pixels breed met de naam
"index", waarin de pagina "inhoud.html" wordt getoond, de rest van
het scherm wordt een groot frame met de naam "hoofdscherm" en daarin
wordt de pagina "welkom.htm" weergegeven.
Achter TARGET vult u dus de naam in van een frame op uw pagina.
Behalve een frame-naam kent TARGET ook nog enkele standaard opties:
In de praktijk zult u het meest gebruik maken van TARGET="frame-naam" om een eigen pagina op te roepen, en TARGET="_top" om een pagina van iemand anders op te roepen.
Frames combineren (geneste frames) Binnen
een <FRAMESET> kunnen we een nieuwe <FRAMESET> openen.
Klinkt ingewikkeld? Valt wel mee.
We beginnen met het indelen in twee kolommen. Dus <FRAMESET COLS="150,*">.
Daarna definiëren we de inhoud van het eerste (linker) frame:
Punten om goed op te letten
<FRAMESET="x, x" NORESIZE SCROLLING="x BORDER="x> Wanneer iemand je pagina met frames bekijkt, kan met de muis de positie van de frames wiizigen. Simpelweg door de scheiding tussen de frames te verslepen. Deze mogelijkheid kan worden uitgeschakeld met het attribuut NORESIZE in de <FRAME>-tag <FRAME NAME="naam" SRC="pagina.htm" NORESIZE>
Wanneer de inhoud van een pagina niet binnen het frame past krijgt
men langs de rechterzijkant, en, als er een afbeelding of zeer lange
woorden in de pagina voorkomen, waarschijnlijk ook langs de onderzijde,
schuifbalken zodat u door de pagina kan scrollen. Net zoals dat
overigens ook in andere windows schermen gebeurd. Beide attributen, SCROLLING en NORESIZE kunnen ook samen worden gebruikt, maar wees voorzichtig: Wanneer iemand met een klein beeldscherm werkt zou het wel eens voor kunnen komen dat hij/zij een deel van de pagina nooit te zien krijgt!
De dikke kaderrand tussen de frames, de frameborder, kunnen we ook
nog aanpassen. Microsoft en Netscape verschillen hierover echter
van mening. Microsoft gaat hier een stapje verder. Voor Explorer gebruikers is het attribuut FRAMEBORDER="n" die je plaatst in elke afzonderlijk <FRAME>-tag. Je kunt hier dus voor elk frame een andere dikte opgeven. Omdat Explorer en Netscape niet op dezelfde wijze met de border-attributen omgaan, doe je er verstandig aan om je pagina's met beide browsers uit te testen voor je ze op het net zet. Als je zelf niet over beide programma's beschikt, zet je pagina dan op een flop en probeer het uit bij iemand die wel dat andere pakket gebruikt. Want: wat in de ene browser een prachter lay-out geeft, kan in een andere browser niet om aan te zien zijn. |
|
© Cyberdots 1998 - 2005 |