[HTML&CSS] Div passend krijgen met verschillende resolutie's

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • petervdveen
  • Registratie: Mei 2007
  • Laatst online: 17-06 08:20

petervdveen

Waze coördinator Benelux

Topicstarter
Hallo,
Ik ben bezig met het maken van een website, alleen nu heb ik wat bedacht, waarvan ik eigenlijk niet weet of dat het mogelijk is. ;)

De website is opgebouwd in verschillende div's, waar onder een header, content en een footer.
De header en footer hebben een vaste hoogte en zijn gecentreerd.
Nu zou ik graag willen dat de content div zich inklemt tussen de header en footer, zodat dus als het browser venster kleiner wordtde header en footer gewoon blijven zitten, maar content kleiner word. Ik zat te denken aan max-height, maar daar kun je (dacht ik) alleen percentage's of pixels invoeren. eigenlijk zou dat moeten zijn: max-height:(100%-50px) bijvoorbeeld. waarbij dan de hoogte van de header+footer uiteraard 50px is.

Voorbeeld van mijn css:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
body{max-height:100%;background: #fff url(images/background.png) no-repeat center top;
padding:0;margin:0;}

body,td,th{color:#666;font-family:Lucida Sans Unicode, Lucida Grande,
sans-serif;font-size:12px;}

#top_container{background-color:#FFF;color:#FFF;height:131px;margin:0;padding:0;
text-align:center;}

#top2{background:url(images/header.png);height:131px;margin:0 auto;padding:0;
text-align:left;width:993px;}
#content_container{background: url(images/background.png) no repeat;
border:0px solid #258;color:#666;margin:0px auto 0;padding:0;text-align:left;
width:950px;}

#content_left{color:#FFF;background-color:transparent;float:left;margin:0;padding:0px;
text-align:left;width:950px;}

#content_left td, #content_left td a, #content_left td a:visited{color:#8c8c8c;
text-decoration:none;}
#content_left table tr td {padding:1px;}
#footer{bottom:0px;position:absolute; height:94px;width:100%;
padding-bottom:0px;margin-bottom:0px;background-position:center;
background:url(images/footer.png) no-repeat;background-position:center;}

En dit is een overzicht van de index pagina:

code:
1
2
3
4
5
6
7
8
9
10
11
12
<body>
<div id="top_container">
     <div id="top2">
     </div>
</div>
<div id="content_container">
     <div id="content_left">
     </div>
</div>
<div id="footer">
</div>
</body>


Wat ik dus heb geprobeerd te maken is een div die precies past, ongeacht de resolutie.
En natuurlijk dat er een scrollbalkje komt in de content div dmv overflow.

Weet misschien iemand of dat dit mogelijk is?

Alvast bedankt.

Peter :)

Edit: Hoop dat de css zo duidelijker is. In het edit-scherm springen de regels automatisch terug.

Waze Nederland - peter@wazenederland.nl


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Doe op z'n minst effe de moeite je CSS leesbaar te maken :X

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
Kun je wel voor elkaar krijgen mbv position:absolute of fixed met zowel een top als bottom gezet, maar dat gaat niet werken onder IE6, aangezien dat fossiel van een browser het zetten van zowel top als bottom niet begrijpt.

Voor IE6 kun je dan nog wel CSS expressions gebruiken, maar dat is erg behelpen. Daarnaast moet je er heel erg voor oppassen dat CSS expressions tijdens hun evaluatie niet op eniger wijze (dwz direct of indirect) in een eindeloze loop verzanden, want dan bevriest de hele browser. Enig resterende mogelijkheid is dan om deze af te schieten via task manager en dat wil je zelfs IE6 gebruikers niet aandoen.

Acties:
  • 0 Henk 'm!

  • moozzuzz
  • Registratie: Januari 2005
  • Niet online
Is dit niet gewoon een 100% height "probleem" waarbij je het gemak hebt dat de footer vast mag zijn?

code:
1
2
3
4
5
6
<div 100% hoogte, padding 50px,0px overflow auto>
   <div header position:absolute height:50px top: 0px>
   </div>
   <div header position:absolute height:50px bottom:0px>
   </div>
</div>

Acties:
  • 0 Henk 'm!

  • petervdveen
  • Registratie: Mei 2007
  • Laatst online: 17-06 08:20

petervdveen

Waze coördinator Benelux

Topicstarter
moozzuzz schreef op donderdag 08 april 2010 @ 13:25:
Is dit niet gewoon een 100% height "probleem" waarbij je het gemak hebt dat de footer vast mag zijn?

code:
1
2
3
4
5
6
<div 100% hoogte, padding 50px,0px overflow auto>
   <div header position:absolute height:50px top: 0px>
   </div>
   <div header position:absolute height:50px bottom:0px>
   </div>
</div>
Dit is inderdaad soort van de bedoeling, maar wat ik nu dus heb is dat zodra de content div te lang word of de beeldscherm resolutie te laag word moet je gaan scrollen. En dan blijven de header en footer niet staan, maar bewegen mee. De overflow moet dus komen op de content div ipv de hele pagina. (neem ik aan tenminste)
Alleen moet ik nu de div nog vertellen hoe hoog dat die mag worden.

Waze Nederland - peter@wazenederland.nl


Acties:
  • 0 Henk 'm!

  • The_Ghost16
  • Registratie: Januari 2004
  • Laatst online: 19-05 10:05
Kijk eens naar de voorbeelden op deze website: http://www.dynamicdrive.com/style/layouts/

edit:
En dan vooral dit voorbeeld: http://www.dynamicdrive.c...and-bottom-frames-layout/

[ Voor 40% gewijzigd door The_Ghost16 op 08-04-2010 14:03 ]


Acties:
  • 0 Henk 'm!

  • peterkuli
  • Registratie: September 2003
  • Laatst online: 26-08 20:08
Misschien de content van de body in een iframe?

Als het venster van de browser wordt verkleind of de resolutie staat te laag, blijven de header en footer op dezelfde relatieve plekken binnen de browser, en wordt het frame in de body verkleind en voorzien van scrollbars.

Geen idee of dit werkt, maar je zou het een try kunnen given. ;)

Acties:
  • 0 Henk 'm!

  • petervdveen
  • Registratie: Mei 2007
  • Laatst online: 17-06 08:20

petervdveen

Waze coördinator Benelux

Topicstarter
Ik heb even geprobeerd een schematisch overzicht te maken.
Dit is eigenlijk de bedoeling. De header en footer staan vast, maar de content is te scrollen.
code:
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
______________________________________
|                                    |
|             [Header]               |
|____________________________________|
|                                  |^|
|                                  |I|
|                                  | |
|                                  | |
|                                  | |
|                                  | |
|                                  | |
|             [Content]            | |
|__________________________________|v|
|                                    |
|             [Footer]               |
|____________________________________|

______________________________________
|                                    |
|             [Header]               |
|____________________________________|
|                                  |^|
|                                  | |
|             [Content]            | |
|                                  | |
|                                  |I|
|                                  | |
|                                  | |
|                                  | |
|__________________________________|v|
|                                    |
|             [Footer]               |
|____________________________________|

Waze Nederland - peter@wazenederland.nl


Acties:
  • 0 Henk 'm!

  • petervdveen
  • Registratie: Mei 2007
  • Laatst online: 17-06 08:20

petervdveen

Waze coördinator Benelux

Topicstarter
Dit was het;)
Super bedankt! Het werkt nu zoals het zou moeten.

[ Voor 51% gewijzigd door petervdveen op 08-04-2010 14:57 ]

Waze Nederland - peter@wazenederland.nl


Acties:
  • 0 Henk 'm!

  • Trubo
  • Registratie: April 2005
  • Laatst online: 19:13
En..... met welke code?

Acties:
  • 0 Henk 'm!

  • The_Ghost16
  • Registratie: Januari 2004
  • Laatst online: 19-05 10:05
petervdveen schreef op donderdag 08 april 2010 @ 14:19:
[...]

Dit was het;)
Super bedankt! Het werkt nu zoals het zou moeten.
Dit is wel een hele slechte oplossing. Je kunt beter kijken naar het voorbeeld wat ik je gegeven heb.

Acties:
  • 0 Henk 'm!

  • peterkuli
  • Registratie: September 2003
  • Laatst online: 26-08 20:08
The_Ghost16 schreef op donderdag 08 april 2010 @ 14:25:
[...]

Dit is wel een hele slechte oplossing. Je kunt beter kijken naar het voorbeeld wat ik je gegeven heb.
Misschien kun je even toelichten waarom het een slechte oplossing is, daar hebben we allemaal wat aan.

Acties:
  • 0 Henk 'm!

  • The_Ghost16
  • Registratie: Januari 2004
  • Laatst online: 19-05 10:05
peterkuli schreef op donderdag 08 april 2010 @ 14:36:
[...]


Misschien kun je even toelichten waarom het een slechte oplossing is, daar hebben we allemaal wat aan.
Waarom voor een iframe kiezen als dit ook eenvoudig op te lossen is met simpele CSS. Want een iframe is nou niet het meest handige component voor dit zaken.

Acties:
  • 0 Henk 'm!

  • peterkuli
  • Registratie: September 2003
  • Laatst online: 26-08 20:08
Blijkbaar is het toch niet zo handig in CSS op te lossen. Kun je in CSS bijvoorbeeld zeggen dat als de header en footer elkaar tot op x afstand zijn genaderd, er scrollbars moeten worden toegevoegd (om het maar even kort door de bocht te zeggen)? Volgens mij niet. TS heeft duidelijk uitgelegd wat hij wil en een frame is daarvoor een oplossing.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-09 10:54

Janoz

Moderator Devschuur®

!litemod

peterkuli schreef op donderdag 08 april 2010 @ 14:46:
Kun je in CSS bijvoorbeeld zeggen dat als de header en footer elkaar tot op x afstand zijn genaderd, er scrollbars moeten worden toegevoegd (om het maar even kort door de bocht te zeggen)?
ja

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • petervdveen
  • Registratie: Mei 2007
  • Laatst online: 17-06 08:20

petervdveen

Waze coördinator Benelux

Topicstarter
Oeps.. Ik had op de verkeerde quote gedrukt. Het was inderdaad de oplossing van The_Ghost16

Waze Nederland - peter@wazenederland.nl


Acties:
  • 0 Henk 'm!

  • peterkuli
  • Registratie: September 2003
  • Laatst online: 26-08 20:08
Prima!
Dan heb ik ook weer wat geleerd.
En TS is geholpen, dat is ook weer mooi.

Acties:
  • 0 Henk 'm!

  • petervdveen
  • Registratie: Mei 2007
  • Laatst online: 17-06 08:20

petervdveen

Waze coördinator Benelux

Topicstarter
Ik heb helaas toch nog een probleem met de website. 8)7
Ik weet niet of ik hier een nieuw topic voor moet openen of dat dat hier nog kan, maar het probleem is dat de website niet goed word weergegeven in IE7... ;)
Het gaat om het middelste div.
Die word in IE7 links uitgeleind.
Ik heb er even op gegoogled en het zou opgelost moeten zijn als ik dit in de css zou zetten:
{margin: 0px auto; text-align:center;}

Maar dat is het helaas niet.
Het gaat trouwens nog steeds over dezelfde website.

Hier nogmaals het css en de website.
css:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
body{max-height:100%;background: #fff url(images/background.png) no-repeat center top;
padding:0;margin:0;}

body,td,th{color:#666;font-family:Lucida Sans Unicode, Lucida Grande,
sans-serif;font-size:12px;}

#top_container{background-color:#FFF;color:#FFF;height:131px;margin:0;padding:0;
text-align:center;}
#top2{background:url(images/header.png);height:131px;margin:0 auto;padding:0;
text-align:left;width:993px;}

#content_container{background: url(images/background.png) no repeat;
border:0px solid #258;color:#666;margin:0px auto 0;padding:0;text-align:left;
width:950px;}
#content_left{color:#FFF;background-color:transparent;float:left;margin:0;padding:0px;
text-align:left;width:950px;}
#content_left td, #content_left td a, #content_left td a:visited{color:#8c8c8c;
text-decoration:none;}
#content_left table tr td {padding:1px;}

#footer{bottom:0px;position:absolute; height:94px;width:100%;
padding-bottom:0px;margin-bottom:0px;background-position:center;
background:url(images/footer.png) no-repeat;background-position:center;}

En dit is een overzicht van de index pagina:

code:
1
2
3
4
5
6
7
8
9
10
11
12
<body>
<div id="top_container">
     <div id="top2">
     </div>
</div>
<div id="content_container">
     <div id="content_left">
     </div>
</div>
<div id="footer">
</div>
</body>


En de div waar het fout gaat is denk ik de #content_container.

Heeft iemand misschien dit probleem eerder gehad of heeft iemand misschien een idee waar ik het moet zoeken?
Bedankt alvast.

Waze Nederland - peter@wazenederland.nl


Acties:
  • 0 Henk 'm!

  • peterkuli
  • Registratie: September 2003
  • Laatst online: 26-08 20:08
petervdveen schreef op maandag 12 april 2010 @ 11:54:
Die word in IE7 links uitgeleind.
Ik heb er even op gegoogled en het zou opgelost moeten zijn als ik dit in de css zou zetten:
{margin: 0px auto; text-align:center;}

Maar dat is het helaas niet.
Het gaat trouwens nog steeds over dezelfde website.
Volgens mij heeft dat te maken met of je de goede DOCTYPE hebt gedeclareerd.
Kijk hier bijvoorbeeld.

edit: linkje toegevoegd

[ Voor 13% gewijzigd door peterkuli op 12-04-2010 12:19 ]


Acties:
  • 0 Henk 'm!

  • petervdveen
  • Registratie: Mei 2007
  • Laatst online: 17-06 08:20

petervdveen

Waze coördinator Benelux

Topicstarter
Had ik inderdaad ook al gevonden, maar helaas...
Ik heb inmiddels wel ontdekt dat als ik uit het css {position:fixed;} verwijder dat hij wel goed centreerd.
Alleen, nu heb ik een nieuw probleem...
Het middelste div zit nu niet meer tussen de header en footer in, maar er achter.
En de header word nu rechts uitgeleind.

Waze Nederland - peter@wazenederland.nl


Acties:
  • 0 Henk 'm!

  • peterkuli
  • Registratie: September 2003
  • Laatst online: 26-08 20:08
Dan moet je eens kijken naar hoe je de middelste div positioneert. Ik denk dat je die relatief tov de header moet zetten en niet fixed in het browserscherm.

Hoe het kan dat je header naar rechts gaat weet ik niet, ik zou je CSS er nog maar eens op naslaan.

Acties:
  • 0 Henk 'm!

  • petervdveen
  • Registratie: Mei 2007
  • Laatst online: 17-06 08:20

petervdveen

Waze coördinator Benelux

Topicstarter
Gedaan en helaas niks gevonden..
Ik denk alleen niet dat het daar aan ligt. Als de middelste div 'fixed' is is alles goed, behalve dat de middelste div links is uitgeleind. Haal ik dit wel dan word het echt een puinhoop.
Wat ik ook appart vind is dat het in elke browser goed gaat, behalve in IE7.
Zelfs in IE 6 en 8 gaat het goed.

Waze Nederland - peter@wazenederland.nl


Acties:
  • 0 Henk 'm!

Verwijderd

Margin: Auto; zou gewoon moeten werken hoor. En op IE7 moet je niet op letten, fijn als het daar goed op is maar de meeste mensen gebruiken IE8 of Mozilla Firefox.

Acties:
  • 0 Henk 'm!

  • petervdveen
  • Registratie: Mei 2007
  • Laatst online: 17-06 08:20

petervdveen

Waze coördinator Benelux

Topicstarter
Verwijderd schreef op maandag 12 april 2010 @ 15:02:
Margin: Auto; zou gewoon moeten werken hoor. En op IE7 moet je niet op letten, fijn als het daar goed op is maar de meeste mensen gebruiken IE8 of Mozilla Firefox.
In IE8 zijn er weer een paar andere dingen die niet werken :? Dus dat gaat niet werken en volgens mij zijn er nog genoeg die er wel mee werken..

Waze Nederland - peter@wazenederland.nl


Acties:
  • 0 Henk 'm!

  • Klaasvaak
  • Registratie: Maart 2010
  • Laatst online: 21:10
Als je de header, content en footer DIV in een wrapper zet met de juiste width, kan je die in zijn geheel centreren met "margin: auto". Alleen IE 6 doet vervelend met het centreren...

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
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
64
65
66
67
68
69
70
71
72
73
<!--[if lt IE 7]><!----><![endif]-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>
<head>

<!-- <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"> -->

<style type="text/css">
html{
 overflow: hidden;
}
body{
 margin: 0;
 padding: 0;
 border: 0;
 overflow: hidden;
 height: 100%; 
 max-height: 100%; 
}
#wrapper{
 width: 950px;
 margin: 0 auto;
height: 100%;
}
#header, #footer{
 position: absolute;
 top: 0;
 width: 950px;
 height: 130px;
 overflow: hidden;
 background: #ccc;
}
#footer{
 top: auto;
 bottom: 0;
 height: 110px;
 overflow: hidden;
 background: #ccc;
}

#content{
 width: 950px;
 position: fixed;
 top: 130px;
 bottom: 110px;
 overflow: auto;
 background: #fff;
}
* html body{
 margin-left: 50px;
 padding: 130px 0 110px 0;
}
* html #content{
 height: 100%;
 width: 950px;
}
</style>
</head>

<body onload="window.status = document.compatMode">
 <div id="wrapper">
  <div id="header">Header</div>
  <div id="content">
   Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>
   Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>
   Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>
   Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>
  </div>
  <div id="footer">Footer</div>
 </div>
</body>
</html>

Acties:
  • 0 Henk 'm!

  • petervdveen
  • Registratie: Mei 2007
  • Laatst online: 17-06 08:20

petervdveen

Waze coördinator Benelux

Topicstarter
Klaasvaak schreef op maandag 12 april 2010 @ 15:44:
Als je de header, content en footer DIV in een wrapper zet met de juiste width, kan je die in zijn geheel centreren met "margin: auto". Alleen IE 6 doet vervelend met het centreren...
[...]
Bedankt!! 8) Het werkt super!!

[ Voor 72% gewijzigd door petervdveen op 12-04-2010 19:51 ]

Waze Nederland - peter@wazenederland.nl

Pagina: 1