Ik probeer de volgende twee kolommen-layout te maken:
1. Website bestaat uit header bovenin (vaste hoogte), twee kolommen (variabele hoogte) en footer onder (vaste hoogte)
2. Header, footer en de kolommen samen nemen de volle breedte van het scherm.
3. Linker kolom heeft vaste breedte, rechter kolom vult de rest van de ruimte
4. Footer staat altijd helemaal onderaan en scrollt mee, header staat helemaal bovenaan en scrollt ook mee
5. Hoogte van de twee kolommen past zich aan aan kolom met meeste inhoud. Ze zijn beide altijd even hoog
6. Het lastigste: Als er weinig inhoud is in de kolommen, dus geen scroll, dan staat de footer altijd helemaal onderaan.
Van alles heb ik geprobeerd! Dan weer komt de tekst onder de footer uit, dan heb ik weer geen scroll mogelijkheid.
Hier mijn laatste poging:
test.css
test.html
Wat doe ik toch fout? Ik wil het zonder truucjes met JavaScript of plaatjes!
(een 'height: 100%' in de content lost problemen op, maar creëert ook nieuwe ellende).
1. Website bestaat uit header bovenin (vaste hoogte), twee kolommen (variabele hoogte) en footer onder (vaste hoogte)
2. Header, footer en de kolommen samen nemen de volle breedte van het scherm.
3. Linker kolom heeft vaste breedte, rechter kolom vult de rest van de ruimte
4. Footer staat altijd helemaal onderaan en scrollt mee, header staat helemaal bovenaan en scrollt ook mee
5. Hoogte van de twee kolommen past zich aan aan kolom met meeste inhoud. Ze zijn beide altijd even hoog
6. Het lastigste: Als er weinig inhoud is in de kolommen, dus geen scroll, dan staat de footer altijd helemaal onderaan.
Van alles heb ik geprobeerd! Dan weer komt de tekst onder de footer uit, dan heb ik weer geen scroll mogelijkheid.
Hier mijn laatste poging:
test.css
Cascading Stylesheet:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
| body { padding:0; margin:0; } #header { position: absolute; top: 0px; left: 0px; right: 0px; height: 50px; display: block; padding: 10px; background-color: #D0D0F0; width: 100%; } #footer { position: absolute; height: 20px; padding: 10px; background-color: #F0D000; width: 100%; text-align: center; bottom: 0px; } #content { position: absolute; margin-top: 70px; padding-bottom: 40px; top: 0px; left: 0px; right: 0px; bottom: 0px; width: 100%; overflow: hidden; } #menu { background-color: #400000; width: 300px; position: absolute; margin-bottom: 40px; bottom: 0px; top: 0px; left: 0px; padding: 10px; } #main { background-color: #D0F0D0; position: absolute; margin-bottom: 40px; bottom: 0px; top: 0px; left: 320px; right: 0px; padding: 10px; } } |
test.html
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
| <html> <head> <link href="test.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="header"> Titel </div> <div id="content"> <div id="menu"> Test links </div> <div id="main"> Test midden<br /> Test midden<br /> Test midden<br /> Test midden<br /> Test midden<br /> Test midden<br /> Test midden<br /> Test midden<br /> Test midden<br /> Test midden<br /> </div> </div> <div id="footer"> (c)2010 Footer </div> </body> </html> |
Wat doe ik toch fout? Ik wil het zonder truucjes met JavaScript of plaatjes!
(een 'height: 100%' in de content lost problemen op, maar creëert ook nieuwe ellende).