Helaas kom ik er echt niet meer uit, ik heb gezocht in CSS tutorials, gezocht naar layouts met 3 rijen zoals ik het wil hebben, maar ik kan het niet vinden, en ik twijfel of het eigenlijk zelfs mogelijk is met CSS.
Mijn probleem is als volgt:
Ik wil een pagina maken met daarin 3 rijen, zeg top, center, bottom. Het totaal moet een hoogte van 100% hebben (het browser venster dus). Hiervan wil ik top en bottom een vaste hoogte geven, en center moet de rest van de hoogte nemen, waarbij ik overflow met een scroll bar wil afhandelen.
Nu wil ik dit dus voor elkaar krijgen zonder frames of tables en het liefst zonder javascript oplossingen. Wat het grote probleem is is dat height naar mijn weten niet kan worden gezet naar "rest" of iets dergelijks. Met inherit krijg ik (zoals ik de divs heb gestructureerd in ieder geval) zoals wel logisch is 100%, met als gevolg dat hij onder uit steekt.
Nu heb ik het voor elkaar gekregen in firefox, maar het werkt niet in internet explorer, waarschijnlijk omdat het een beetje een hack is.
Voorbeeld (werkt alleen in firefox)
Ik heb de containers als volgt gestructureerd:
En dit als stylesheet (wat dus niet helemaal lekker werkt):
Nu weet ik dat het zo gepiept is met bijvoorbeeld frames, en dat je met javascript eventhandlers ook wel de hele tijd kan berekenen hoe hoog center moet worden, maar ik heb het idee dat ik gewoon iets over het hoofd zie ofzo.
Edit: nog wat vergeten te schrijven, ik heb al geprobeerd om met margins te werken, alleen werken de scroll bars dan weer niet mee (ze worden niet beinvloed door de margins). Ook weet ik dat het zo opgelost is door met percentages te werken voor top en bottom, alleen wil ik echt een vaste hoogte in pixels.
Mijn probleem is als volgt:
Ik wil een pagina maken met daarin 3 rijen, zeg top, center, bottom. Het totaal moet een hoogte van 100% hebben (het browser venster dus). Hiervan wil ik top en bottom een vaste hoogte geven, en center moet de rest van de hoogte nemen, waarbij ik overflow met een scroll bar wil afhandelen.
Nu wil ik dit dus voor elkaar krijgen zonder frames of tables en het liefst zonder javascript oplossingen. Wat het grote probleem is is dat height naar mijn weten niet kan worden gezet naar "rest" of iets dergelijks. Met inherit krijg ik (zoals ik de divs heb gestructureerd in ieder geval) zoals wel logisch is 100%, met als gevolg dat hij onder uit steekt.
Nu heb ik het voor elkaar gekregen in firefox, maar het werkt niet in internet explorer, waarschijnlijk omdat het een beetje een hack is.
Voorbeeld (werkt alleen in firefox)
Ik heb de containers als volgt gestructureerd:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
| <div id="main"> <div id="top"> </div> <div id="center"> </div> <div id="bottom"> </div> </div> |
En dit als stylesheet (wat dus niet helemaal lekker werkt):
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
| #main{ width:600px; height:100%; background-color:#000000; } #top{ background-color:#FF0000; height:70px; } #center{ background-color:#00FF00; overflow:auto; position:absolute; width:inherit; top:70px; bottom:70px; } #bottom{ background-color:#0000FF; position:absolute; width:inherit; height:70px; bottom:0px; } |
Nu weet ik dat het zo gepiept is met bijvoorbeeld frames, en dat je met javascript eventhandlers ook wel de hele tijd kan berekenen hoe hoog center moet worden, maar ik heb het idee dat ik gewoon iets over het hoofd zie ofzo.
Edit: nog wat vergeten te schrijven, ik heb al geprobeerd om met margins te werken, alleen werken de scroll bars dan weer niet mee (ze worden niet beinvloed door de margins). Ook weet ik dat het zo opgelost is door met percentages te werken voor top en bottom, alleen wil ik echt een vaste hoogte in pixels.
[ Voor 11% gewijzigd door Verwijderd op 26-08-2005 15:42 . Reden: wat vergeten toe te voegen ]