Forums / Setup & design / div height 100% problem
Valentina Ferrari
Friday 02 July 2004 2:49:42 am
Hi! I'm building a new site using a totally table-less design (only with DIV), using CSS. My site has header, footer, right column, left column and content column.I would like to view all my columns at the same height; so if the content column is longer than left and right columns I want that all the columns has the same height.
Buy DOESN'T WORKS!
In my stylesheet the body and the container div has height 100% (the container div contains all the elements of my site: footer, header, right, left and content columns).Also right, left and content columns has height 100%.
I'm optimizing my site for IE 5.5, IE 6.0, NS 6.2, NS 7.1, Opera and Mozilla (last version).
I don't know want I have to do!!Anyone has the same problem? Anyone has the solution?
Thanks a lot!Valentina
Paul Forsyth
Friday 02 July 2004 3:14:35 am
Try adding this to your css:
/* Fix for body height problem, from: http://www.sitepoint.com/forums/showthread.php?t=166525 */ .clear { clear:both; /*** these next attributes are designed to keep the div height to 0 pixels high, critical for Safari and Netscape 7 ***/ height:1px; overflow:hidden; margin-bottom:-1px; } /*** stops IE browsers from displaying the clear div/br in the page, as these are for Moz/Opera and Safari only. If IE 5.x Win DID display these, the page is too high ***/ * html .clear { display:none }
and then in your html at the end before the final </div> (though it may just be necessary in the center div).
<div class="clear"> </div>
Its a hack but seems to work.
paul
--http://www.visionwt.com
Friday 02 July 2004 5:10:08 am
Hi Paul, thank you for your suggest but I have the same problem.Maybe I didn't explain so well my site situation.
So if you want help me you can see the image that explain the problem at this URL:www.bossoniecipriani.it/mysite.gif
Thank you very much!Valentina
Friday 02 July 2004 6:10:16 am
Im away for the weekend now so i cant help any further, sorry.
But, play around with that code and follow the link given. It does do what you want.
Alex Jones
Friday 02 July 2004 7:21:14 am
Valentina, the easiest solution would be to assign a background image (which shows all three columns) to your container div. This way, no matter what, all three are shown. An example of this method is detailed here: http://www.alistapart.com/articles/fauxcolumns/ Note, this will only work if you are using a fixed-width design.
Alex bald_technologist on the IRC channel: #Exponentialhttp://www.agrussell.com :: http://www.cuttingedge.com
Alex [ bald_technologist on the IRC channel (irc.freenode.net): #eZpublish ] <i>When in doubt, clear the cache.</i>
Patrick Woods
Friday 02 July 2004 1:57:22 pm
I recently had to deal with this for work. Some javascript takes care of the problem. Feel free to re-use this function if you find it useful. I found it works pretty well. The only requirement is that you place your 3 columns inside another DIV so there is some useless markup but it pays off.
function equalHeights(element) { var content = document.getElementById(element); var desiredHeight = content.offsetHeight; var contentDivs = content.getElementsByTagName('div'); for(i=0; i < contentDivs.length; i++) { if (contentDivs[i].parentNode.id == element) { contentDivs[i].style.height = desiredHeight + 'px'; } } }
Then just call the function on page load using your favorite method (I like using addEvent), passing the DIV that contains all 3 columns
equalHeights('column_container_div');
This won't work on anything that doens't support the W3C DOM but it will still degrade very well. Hope it helps you out.
--Patrickhttp://www.hakjoon.com/
-- www.hakjoon.com
Lazaro Ferreira
Friday 27 August 2004 10:53:38 am
Hi Patrick,
I have tested this JavaScript Code, it works fine for IE, but it doesn't work forNN 7.1, nor for Mozilla
Have you tested this for Mozilla or Netscape Navigator ?
ThanksLazaro
Lazaro http://www.mzbusiness.com
Friday 27 August 2004 4:29:42 pm
I created the code in Mozilla, so in my experience it works. Are you using floats by any chance? In Mozilla a container won't expand to the height of floated children unless the container itself is floated. Could that be the reason?
I have a new version that takes margins and padding into account but I need to tweak it a little bit more. I'll release it to the forum once I have it all tweaked.
I'd be happy to take a look at stuff and see if I can figure out why it's not working for you.
--Patrick