Hoi janbe63,
Wat niet hierboven staat, maar wel op je testpagina, is het begin van de html-code; met:
HTML:
<! doctype html>
<html>
... enz.
De spatie tussen het uitroepteken en het woord "doctype" hoort er niet in. Daardoor weten de browsers in feite niet dat het standaard html moet zijn wat er volgt, en gaan ze maar wat doen (bv. Firefox heel anders dan Internet Explorer).
Verder is het raadzaam er in een <meta> de karakterset bij te zetten ("utf-8" is universeel), d.w.z. hoe de lettertekens van de code geïnterpreteerd moeten worden. In je editor moet de pagina dan ook als utf-8 opgeslagen worden.
Bij een <link> verwijzing hoort ook te staan wat voor soort spul er in die <link> zit: type="text/css".
Daarmee kan het begin worden:
HTML:
<!doctype html>
<html lang="nl">
<head>
<meta charset="utf-8">
<title>test :: schermvullend</title>
<link rel="stylesheet" type="text/css" href="css/styles.css" />
... enz.
De "lang" (
language) is de taal van de inhoud van de pagina, o.a. belangrijk voor voorleesbrowsers en voor Google.
=======
In de css zit een afwijking van het tweede voorbeeld van CaptainBri: de div#box3 {...} heeft een height:100% gekregen. Dat zijn tegenstrijdige berichten: top moet op 75px van boven liggen, dan komt 100% hoogte, en dan moet de onderkant 50px boven de onderkant van de pagina liggen. Samen: 100%+125px, dwz. er komt rechts een scrollbar om bij de laatste 125px te kunnen komen.
De div#box2 heeft dat niet, en daarom komt (bij een geldig !doctype) het groen van box3 precies 75px onder de 50px hoogte van de gele footer uitsteken (achter het geel zit ook groen, maar dat zie je niet omdat de footer in een hogere laag zit).
Als de 100% hoogte er uit gaat, komt alles goed: dan is de top-afstand en de bottom-afstand gegeven, en wat er tussen zit wordt automatisch door de browser ingevuld.
=======
Er kan nog meer uit!

In de css staat div#box1, div#box2, enz.
Nu is een
id een uniek ding, dat maar één keer op een pagina gebruikt mag worden. Of die
id verbonden is aan een <div>, een <h1>, een <p> of noem maar op, dat maakt niets uit: met #box1 {...} enz. weet de css genoeg.
Ook staat er een container <div id="pagina"> in, die als enige functie heeft om de totale pagina-breedte op 100% te zetten.
Maar de <body> heeft als default-waarde uit zichzelf al 100% breedte. Dan worden alle <div>'s die er in zitten óók 100% breed, want <div>'s hebben een
block-karakter = gaan over de volle beschikbare breedte van het element waar ze in zitten.
- Behalve als een <div> een eigen breedte opgekregen heeft, zoals #box2 en #box3 dat hebben; of als een <div> een absolute positie heeft zoals #box4 (dan wordt de <div> zo breed als z'n inhoud, voor zover de 100% niet gehaald wordt). De #box4 krijgt dus wel een breedte van 100% mee.
O ja, de #box2 en #box3 hebben een {float: left}, maar ook een {position: absolute}. Maar bij een absolute positie mag/kan er niet gefloat worden, want alles zit vastgeprikt. De {float: left} kan er dus uit.
=======
Samengevat:
HTML:
<!doctype html>
<html lang="nl">
<head>
<meta charset="utf-8">
<title>test :: schermvullend</title>
<link rel="stylesheet" type="text/css" href="css/styles.css" />
</head>
<body>
<div id="box1">box 1</div>
<div id="box2">box 2</div>
<div id="box3">box 3</div>
<div id="box4">box 4</div>
</body>
</html>
Met als css:
Code:
body{
margin: 0;
height: 100%;
}
#box1 {
height: 75px;
background-color: black;
}
#box2 {
position: absolute;
width: 20%;
top:75px;
bottom:50px;
background-color: red;
overflow-y:auto;
}
#box3 {
position: absolute;
width: 80%;
top:75px;
bottom:50px;
left:20%;
background-color: green;
overflow-y:auto;
}
#box4 {
position: absolute;
width: 100%;
height: 50px;
bottom: 0;
background-color: yellow;
}
- Hiermee komt dan deze testpagina tevoorschijn: schermvullend.htm
- Er zit ook wat dummy-tekst in.
- Bij een minder hoog scherm/window krijgt de #box 3 automatisch ook een eigen scrollbar.
Met vriendelijke groet,
CSShunter
__________
PS.
Aan zo'n breedte-opvullende opmaak zijn ook nadelen verbonden:
- Bij lage resoluties / smalle windows kan de linkerkolom erg smal worden; kan gevaarlijk zijn als er afbeeldingen met een vaste breedte in komen.
- Bij hoge resoluties / brede windows kan de rechterkolom erg breed worden, zodat de tekst moeilijk te lezen is.
Links bij een beeldscherm van 1920*1080px, rechts bij een scherm op 1024*768px.
- Bij een breedbeeld (hier op vrijwel ware grootte) komt de tekst in de rechterkolom (bij normale lettergrootte, dus niet kleiner!) al gauw uit op 2,5 à 3 keer de maximale zetbreedte die voor goed leesbare regels geldt.
Bij een
fixed width opmaak heb je daar geen last van; de pagina kan horizontaal gecentreerd worden, terwijl de overschot-ruimte links en rechts bij bredere schermen met iets moois opgevuld kan worden.