[css] 100% height met banner

Pagina: 1
Acties:

  • truegrit
  • Registratie: Augustus 2004
  • Laatst online: 10-02 15:26
Ik ben bezig met het aanpassen van een layout zodat de pagina altijd 100% height heeft, minimaal. Op zich is dit te doen met height:100%, maar omdat er een banner bijzit en een andere div die bepaalde eisen stelt is dit wat moeilijker geworden (lees: buiten mijn css kennis).

Dit is de voorbeeld code:
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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
    <head>
        <style type="text/css">
            #banner {
                height:145px;
                background-color:#a44;
            }
            #root {
                width:1000px;
                margin:auto;
                background-color:#ABDD42;
                height:100%;
            }
            #content {
                width:985px;
                margin-left:15px;
                margin-top:15px;
                height:100%;
                background-color:#8593D6;
            }
            html, body {
                margin:auto;
                height:100%;
            }
        </style>
    </head>
    <body>
        <div id="root">
            <div id="banner">
            </div>
            <div id="content">
            </div>
        </div>
    </body>
</html>


en hier het resultaat.
Ik heb het even getest met IE, en daar zit dus die boxmodel bug in, maar dat is voor latere zorg. Het gaat om wat er in Opera en FF gebeurt. Ik wil de banner (het rode stuk) met een vaste hoogte helemaal boven hebben, met daaronder een content div. Zoals op de pagina te zien is moet er een margin van 15 pixels aan de bovenkant en linkerkant te zien zijn. Hij zou ook nog aan de onderkant moeten, maar daar zit nou het probleem.

Omdat er een height van 100% word meegegeven aan de content word hij zo geplaatst dat hij ook daadwerkelijk dezelfde height bezit als zijn parent, maar door de banner die er ook inzit valt het dus buiten het scherm. In principe zou het op te lossen zijn door de banner absoluut te positioneren, maar dan kom ik weer in de problemen met de margins van het grote blauwe vlak die dan ofwel onder de banner verdwijnen, met als gevolg dat er geen groene stukken meer tussen de banner en de content te zien is, ofwel hij doet hetzelfde als wat er nu gebeurt, ook weer door de margins.

Mijn vraag is: hoe krijg ik het voor elkaar dat de content (het blauwe stuk) meerekt met de rest van de pagina, maar wel met de margins intact?
In feite kan het ook zo worden gezien:
Cascading Stylesheet:
1
#content { height:100% - 145px; }

maar omdat dat niet mogelijk is zonder javascript zoek ik een alternatief, het liefst zonder tabellen.

edit: nu ik het zo lees lijkt het net of ik een request voor kant en klare html/css doe, maar dat is absoluut niet het geval :)

[ Voor 8% gewijzigd door truegrit op 22-07-2006 12:35 ]

hallo


  • Rowanov
  • Registratie: Februari 2004
  • Niet online

Rowanov

Kop eens wat anders...

Even googlen is toch niet zo moeilijk? Je hebt de belangrijkste woorden al: css, layout, header, 100% height.

Hier een pagina waar het uitgelegd wordt; met een voorbeeld. Die techniek is ook toepasbaar als er geen footer is.

  • truegrit
  • Registratie: Augustus 2004
  • Laatst online: 10-02 15:26
op zich is dat wel mooi en aardig, maar in de link die ik gepost had gaat het vooral om het blauwe stuk, om die ook mee te laten rekken. Zoals je kan zien is het groene gedeelte wel in orde, dus daar zit het probleem niet. En dat groene gedeelte is precies wat die link van jou doet. Het gaat dus om het blauwe gedeelte, de 'echte' content.

hallo


  • Zillion01
  • Registratie: Juni 2001
  • Laatst online: 22-01 08:37

Zillion01

Obey your screen!

Da ken nie.

Je kunt geen oplossing maken met CSS die op iE en FF goed werkt. Javascript dus. Je kunt het wel faken door een backgroundimage te maken.

Verwijderd

Hier staan wel een aantal bruikbare llinks denk ik. Heb zelf laatst deze testpage in elkaar geknutseld via 1 v/d genoemde methodes (die van Sitepoint). Werkt prima cross browser voorzover ik heb kunnen testen. Je kunt de footer ook gewoon weg laten.

  • ^Ripper
  • Registratie: December 2000
  • Laatst online: 20-07-2025
Ik denk dat je wel wat aan deze pagina hebt.
http://www.sceneone.nl/tips_tricks/fixed_header.php
Bekijk die testlinks op de pagina eens.
Paar kleine aanpassingen en je hebt wat jij wilt.
Pagina: 1