login  Naam:   Wachtwoord: 
Registreer je!
 Forum

achtergrondkleur sidebar doorlopen

Offline san - 30/07/2009 01:35 (laatste wijziging 30/07/2009 01:41)
Avatar van sanHTML interesse In de volgende code loopt de achtergrondkleur over de lengte van de inhoud bij sidebar. Maar hoe kun je ervoor zorgen dat de lengte tot de onderkant van de pagina doorloopt? Met 100% height lukt het me niet of loopt het te ver door.
  1. html, body {
  2. background-color: #CC33FF;/*paars*/
  3. margin: 0;
  4. padding: 0;
  5. height: 100%;
  6. }
  7.  
  8. .titel{
  9. background-color:#33CCFF;/*blauw*/
  10. text-align:center;
  11. }
  12.  
  13. .sidebar{
  14. height: 100%;
  15. background-color:#FF0000;/*red*/
  16. float: left;
  17. }
  18.  
  19. .container{
  20. height: auto !important;
  21. height: 100%;
  22. }
  23.  
  24. #tekst {
  25. font-size: 17px;
  26. font-style: normal;
  27. font-family: arial, verdana;
  28. color: #000000;
  29. margin-left: 235px;
  30. }
  31.  
  32. .footer {
  33. position: absolute;
  34. width: 100%;
  35. background-color:#FFFFFF;
  36. font-size: 13px;
  37. bottom: 0;
  38. }

  1.  
  2. <div id="container">
  3.  
  4. <div class="titel">
  5. <img src="titel1.png" height="80" width="800" alt="">
  6. </div>
  7.  
  8.  
  9.  
  10.  
  11. <div class="sidebar">
  12. <br><a href="#"><img src="menu/menu1.png" border="0" height="100" width="149" alt=""></a>
  13. <br><a href="#"><img src="menu/menu2.png" border="0" height="100" width="149" alt=""></a>
  14. <br><a href="#"><img src="menu/menu3.png" border="0" height="100" width="149" alt=""></a>
  15. <br><a href="#"><img src="menu/menu4.png" border="0" height="100" width="149" alt=""></a>
  16. </div>
  17.  
  18.  
  19. <div id="tekst">
  20. Tekst </div>
  21.  
  22. <div style="margin-left: 135px; margin-top: 50px; border: solid 2px black; height: 200px; width: 312px; float: left;">
  23. <img src="image/foto3.jpg" height="200" width="312" alt="">
  24. </div>
  25.  
  26. <div style="margin-left: 15px; margin-top: 50px; border: solid 2px black; height: 200px; width: 301px; float: left;">
  27. <img src="image/foto2.jpg" height="200" width="301" alt="">
  28. </div>
  29.  
  30. <div class="footer">
  31. <div style="margin-left: 30px">Footer</a></div>
  32. </div>
  33.  
  34. </div>
  35.  
  36.  
  37.  
  38. </body>

12 antwoorden

Gesponsorde links
Offline meerweten - 30/07/2009 11:55
Avatar van meerweten Lid heb dit probleem ook eens gehad

ik zal opzoeken wat ik toen gedaan heb om dit op te lossen maar ik kan niets beloven want ik denk dat ik dat reeds verwijdert heb
Offline san - 05/08/2009 13:33
Avatar van san HTML interesse Heb het gevonden: met overflow:hidden
Offline wvmaaren - 05/08/2009 16:04
Avatar van wvmaaren Nieuw lid overflow: hidden is niet echt een goede oplossing... dit betekend dat je geen scrollbars meer op je website krijgt...

Werken met een 100% height is altijd een drama. Ik werk meestal met een javascriptje wat mijn div oprekt tot 100% height als de content minder is dan de hoogte van de browser. en als de content meer is dan de hoogte van de browser, rekt de div gewoon met de content mee...
Offline san - 05/08/2009 17:08
Avatar van san HTML interesse Oke ja dat is zo. Bedankt voor de tip. Ik heb een javasript gevonden in jouw onderwerp van 15 dec jl. Is dat degene die je bedoelt? Moet daar nog iets in veranderd worden zodat hij in mijn script past?
Offline wvmaaren - 06/08/2009 08:52
Avatar van wvmaaren Nieuw lid Ik zal je even een update van dat script geven en wat commentaar erbij zetten...

  1. <script type="text/javascript" language="javascript">
  2. function resizescreen()
  3. {
  4. //Hier bekijk je welke hoogte er beschikbaar is voor de browser.
  5. var WindowHeight = 0;
  6. if( typeof( window.innerHeight ) == 'number' )
  7. {
  8. //Non-IE
  9. WindowHeight = window.innerHeight;
  10. }
  11. else if( document.documentElement && ( document.documentElement.clientHeight) )
  12. {
  13. //IE 6+ in 'standards compliant mode'
  14. WindowHeight = document.documentElement.clientHeight;
  15. }
  16. else if( document.body && ( document.body.clientHeight ) )
  17. {
  18. //IE 4 compatible
  19. WindowHeight = document.body.clientHeight;
  20. }
  21. //Einde bepalen window inner height
  22.  
  23. //In deze situatie is er een gekozen om altijd fullscreen te werken. De contentdiv wordt dus altijd opgerekt
  24. //tot de maximum hoogte minus de hoogte van de footer en de header. de "2" die gepost wordt is borderafhankelijk
  25. //Hiermee moet je even zoeken naar "the magic number".
  26. var content = document.getElementById('content');
  27. var header = document.getElementById('header');
  28. var footer = document.getElementById('footer');
  29. var DivHeight = WindowHeight - header.offsetHeight - footer.offsetHeight - 2 + "px";
  30. if (content.style.height < DivHeight)
  31. {
  32. content.style.height = DivHeight;
  33. }
  34. }
  35. </script>


Je kan het onderste gedeeltje ook veranderen met deze code. Op deze manier wordt de pagina tot 100% afgevuld als de content div niet voldoende content bevat om de pagina volledig te vullen.

staat er echt wel meer content in dan dat er windowheight is. Wordt de div automatisch opgerekt.


  1. var content = document.getElementById('content');
  2. var header = document.getElementById('header');
  3. var footer = document.getElementById('footer');
  4. var DivHeight = WindowHeight - header.offsetHeight - footer.offsetHeight - 2 + "px";
  5. content.style.height = DivHeight;


Dit laatste stukje code zorgt ervoor dat je een trigger toevoegd aan je pagina. Deze trigger fired het resize event op het moment dat de user het scherm resized.

  1. <script type="text/javascript">
  2.  
  3. window.onresize = resize;
  4.  
  5. function resize()
  6. {
  7. setTimeout('resizescreen()', 1000);
  8. }
  9. </script>
Offline san - 07/08/2009 13:32
Avatar van san HTML interesse Ik heb bovenstaand javascript in mijn pagina gezet maar bij werkt het niet. Blijf onder de footer een stuk menu achtergrondkleur en body achtergrondkleur houden. Moet ik soms nog iets in de css aanpassen?
Offline wvmaaren - 07/08/2009 14:35
Avatar van wvmaaren Nieuw lid Als je even je je volledige code paste, dan zal ik het voor je fixxen
Offline san - 07/08/2009 17:17
Avatar van san HTML interesse Bijgaande de code. Hierin heb ik jouw javascript weggelaten. Alvast hartstikke bedankt. Als het werkt is het super.Plaatscode: 137313
Offline wvmaaren - 08/08/2009 21:03
Avatar van wvmaaren Nieuw lid Ik heb een werkende opzet voor je gemaakt. Hier moet je wel mee verder kunnen!

Succes,

Wouter

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <script type="text/javascript" language="javascript">
  5. function resizescreen()
  6. {
  7. //Hier bekijk je welke hoogte er beschikbaar is voor de browser.
  8. var WindowHeight = 0;
  9. if( typeof( window.innerHeight ) == 'number' )
  10. {
  11. //Non-IE
  12. WindowHeight = window.innerHeight;
  13. }
  14. else if( document.documentElement && ( document.documentElement.clientHeight) )
  15. {
  16. //IE 6+ in 'standards compliant mode'
  17. WindowHeight = document.documentElement.clientHeight;
  18. }
  19. else if( document.body && ( document.body.clientHeight ) )
  20. {
  21. //IE 4 compatible
  22. WindowHeight = document.body.clientHeight;
  23. }
  24.  
  25. //Einde bepalen window inner height
  26.  
  27. //In deze situatie is er een gekozen om altijd fullscreen te werken. De contentdiv wordt dus altijd opgerekt
  28. //tot de maximum hoogte minus de hoogte van de footer en de header. de "2" die gepost wordt is borderafhankelijk
  29. //Hiermee moet je even zoeken naar "the magic number".
  30. var contentLeft = document.getElementById('content-left');
  31. var contentMain = document.getElementById('content-main');
  32. var header = document.getElementById('header');
  33. var footer = document.getElementById('footer');
  34. var DivHeight = WindowHeight - header.offsetHeight - footer.offsetHeight;
  35. if (contentLeft.offsetHeight < contentMain.offsetHeight)
  36. {
  37. if (contentMain.offsetHeight < DivHeight)
  38. {
  39. contentMain.style.height = DivHeight + "px";
  40. contentLeft.style.height = DivHeight + "px";
  41. }
  42. else
  43. {
  44. contentLeft.style.height = contentMain.offsetHeight + "px";
  45. }
  46. }
  47. else
  48. {
  49. if (contentLeft.offsetHeight < DivHeight)
  50. {
  51. contentMain.style.height = DivHeight + "px";
  52. contentLeft.style.height = Divheight + "px";
  53. }
  54. else
  55. {
  56. contentMain.style.height = contentLeft.offsetHeight + "px";
  57. }
  58. }
  59.  
  60. }
  61.  
  62. <script type="text/javascript">
  63.  
  64. window.onresize = resize;
  65.  
  66. function resize()
  67. {
  68. setTimeout('resizescreen()', 1000);
  69. }
  70. </script>
  71. <style type="text/css">
  72.  
  73. html, body
  74. {
  75. font-family: Verdana, Geneva, sans-serif;
  76. font-size: 12px;
  77. }
  78.  
  79. p
  80. {
  81. margin: 0px 0px 10px 0px;
  82. }
  83.  
  84. #header
  85. {
  86. position: absolute;
  87. top: 0px;
  88. left: 0px;
  89. background-color: fuchsia;
  90. width: 100%;
  91. height: 100px;
  92. text-align: center;
  93. }
  94.  
  95. #content-left
  96. {
  97. position: absolute;
  98. top: 100px;
  99. left: 0px;
  100. background-color: green;
  101. float: left;
  102. width: 165px;
  103. }
  104.  
  105. .menu
  106. {
  107. border: 2px solid blue;
  108. background-color: silver;
  109. margin: 10px;
  110. width: 141px;
  111. height: 20px;
  112. text-align: center;
  113. }
  114.  
  115. #content-main
  116. {
  117. position: absolute;
  118. top: 100px;
  119. left: 165px;
  120. padding: 10px;
  121. }
  122.  
  123. #footer
  124. {
  125. position: fixed;
  126. width: 100%;
  127. bottom: 0px;
  128. left: 0px;
  129. height: 20px;
  130. background-color: black;
  131. color: white;
  132. text-align: center;
  133. }
  134.  
  135.  
  136.  
  137.  
  138. </head>
  139.  
  140. <body onLoad="resizescreen();">
  141. <div id="header"><h1>Dit is de header</h1></div>
  142.  
  143. <div id="content-left">
  144. <div class="menu"><a href="#">Menu Item 1</a></div>
  145. <div class="menu"><a href="#">Menu Item 1</a></div>
  146. <div class="menu"><a href="#">Menu Item 1</a></div>
  147. <div class="menu"><a href="#">Menu Item 1</a></div>
  148. </div>
  149.  
  150. <div id="content-main">
  151. <p>Aliquam erat volutpat. Nullam velit ipsum, pulvinar sit amet venenatis vel, posuere non diam. Etiam a odio sed ipsum tincidunt laoreet in ac odio. Morbi malesuada diam id lacus volutpat tempor. Proin a augue felis. Nam sed felis tortor. Integer lacinia, turpis adipiscing tempus ullamcorper, arcu lectus pellentesque turpis, quis tristique velit nulla pretium arcu. Mauris bibendum congue sagittis. Integer vitae ipsum eget est convallis condimentum. Mauris bibendum feugiat massa non lobortis. Praesent malesuada pharetra semper. Cras volutpat, neque vel tempor volutpat, nisl dui venenatis neque, ac luctus velit tortor sit amet tellus. Cras id tellus leo. Fusce suscipit nulla at ligula facilisis et condimentum eros lobortis. Aenean vel convallis orci. </p>
  152. <p>Aliquam erat volutpat. Nullam velit ipsum, pulvinar sit amet venenatis vel, posuere non diam. Etiam a odio sed ipsum tincidunt laoreet in ac odio. Morbi malesuada diam id lacus volutpat tempor. Proin a augue felis. Nam sed felis tortor. Integer lacinia, turpis adipiscing tempus ullamcorper, arcu lectus pellentesque turpis, quis tristique velit nulla pretium arcu. Mauris bibendum congue sagittis. Integer vitae ipsum eget est convallis condimentum. Mauris bibendum feugiat massa non lobortis. Praesent malesuada pharetra semper. Cras volutpat, neque vel tempor volutpat, nisl dui venenatis neque, ac luctus velit tortor sit amet tellus. Cras id tellus leo. Fusce suscipit nulla at ligula facilisis et condimentum eros lobortis. Aenean vel convallis orci. </p>
  153. <p>Aliquam erat volutpat. Nullam velit ipsum, pulvinar sit amet venenatis vel, posuere non diam. Etiam a odio sed ipsum tincidunt laoreet in ac odio. Morbi malesuada diam id lacus volutpat tempor. Proin a augue felis. Nam sed felis tortor. Integer lacinia, turpis adipiscing tempus ullamcorper, arcu lectus pellentesque turpis, quis tristique velit nulla pretium arcu. Mauris bibendum congue sagittis. Integer vitae ipsum eget est convallis condimentum. Mauris bibendum feugiat massa non lobortis. Praesent malesuada pharetra semper. Cras volutpat, neque vel tempor volutpat, nisl dui venenatis neque, ac luctus velit tortor sit amet tellus. Cras id tellus leo. Fusce suscipit nulla at ligula facilisis et condimentum eros lobortis. Aenean vel convallis orci. </p>
  154. <p>Aliquam erat volutpat. Nullam velit ipsum, pulvinar sit amet venenatis vel, posuere non diam. Etiam a odio sed ipsum tincidunt laoreet in ac odio. Morbi malesuada diam id lacus volutpat tempor. Proin a augue felis. Nam sed felis tortor. Integer lacinia, turpis adipiscing tempus ullamcorper, arcu lectus pellentesque turpis, quis tristique velit nulla pretium arcu. Mauris bibendum congue sagittis. Integer vitae ipsum eget est convallis condimentum. Mauris bibendum feugiat massa non lobortis. Praesent malesuada pharetra semper. Cras volutpat, neque vel tempor volutpat, nisl dui venenatis neque, ac luctus velit tortor sit amet tellus. Cras id tellus leo. Fusce suscipit nulla at ligula facilisis et condimentum eros lobortis. Aenean vel convallis orci. </p>
  155. </div>
  156.  
  157. <div id="footer">Dit is de footer</div>
  158. </body>
  159. </html>
Offline san - 08/08/2009 22:34
Avatar van san HTML interesse Het werkt perfect. Echt hartstikke bedankt. Ben er wat mee aan het expirementeren en ziet er goed uit. Ik heb alleen nog 1 vraagje:
Ik heb in mijn menu 4 afbeelding van buttons. Als ik er 3 plaats werkt het nog prima maar bij de 4e gaat het mis en geeft hij foutmelding divheight niet definieerbaar. Waarschijnlijk wordt de div dan te hoog ofzo? Valt hier iets aan te doen?
Offline wvmaaren - 08/08/2009 23:58
Avatar van wvmaaren Nieuw lid nee er zit een typefoutje in het script... sorry...

in de laatste if statement in het javascript staat Divheight ipv DivHeight. je moet dus even een hoofdletter H ervan maken :-)

succes
Offline san - 10/08/2009 01:52
Avatar van san HTML interesse Ziet er nu helemaal fantastisch uit ja. Werkt goed. Alleen in IE 5.5 en 6 verschijnt de footer bovenaan in beeld?? Nu weet ik niet of deze versies nog wel veel gebruikt worden. In FF en IE 7 en 8 wel goed. Hartstikke bedankt.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.207s