Dynamic Drive Blog Here
CSS Equal Columns Height script (v1.01)

A common pitfall of a CSS based columns layout is that the columns do not share a common height. Unlike a table based layout where the height of the table itself dictates the height of all of its columns, CSS columns are independent of one another in that respect. Now, this can be problematic (from a design standpoint) when you wish to style one of your CSS columns in a way that should extend all the way down to the end of the layout, such as giving a side column an explicit background color, a surrounding border etc.
This is a generic "CSS Equal Columns Height" script that will dynamically set the participating columns' heights to that of the tallest column's height, creating a uniform columns height layout. Use this script on any of our CSS Layouts for example. It's a matter of plug and play! To use this script, just insert this line of code into the HEAD section of your CSS layout page:
<script src="equalcolumns.js" type="text/javascript"></script>
As you can see, it references the external .js file "equalcolumns.js", which you should download (right click and select "Save As") and then upload to your own site.
This script is configured by default to automatically work with all of the layouts in our CSS Layouts section, whether 2 columns or 3 columns, fluid or fixed. Just add the script to the HEAD of any of these pages, and that's it!
If you wish to use this script to equalize the columns of your own custom CSS layout, open up "equalcolumns.js", and refer to the line:
ddequalcolumns.columnswatch=["leftcolumn", "rightcolumn", "contentwrapper"]
Change "leftcolumn", "rightcolumn" etc to the IDs of the CSS columns you wish to equalize. The script will do a check first to see if each corresponding column actually exists.
Comment Pages 5 of 21 pages « First < 3 4 5 6 7 > Last »
I have been struggling with a left column background being blue for the past week...
Many thanks you are a live saver not to mention my sanity!!!
ddequalcolumns.dotask(window, function(){setInterval("ddequalcolumns.setHeights()", 100)}, "load")
OK that went great. However, since there was no conent on my left column, and very little content on my right column, the layout simply adjusted itself to the little content there was, both columns same height alright, though i needed to fill the entire browser window regardless of content. So i used a little trick which does work for me but i don't know if this is cheating. I added to the css a hight declaration as follows:
#rightcolumn{
float: left;
width: 100px; /*Width of right column in pixels*/
height: 580px; [B]I ADDED THIS HERE[/B]
margin-left: -100px; /*Set left margin to -(RightColumnWidth) */
background: #FF6600;
}
#contentwrapper{
float: left;
width: 100%;
height: 580px; [B]I ALSO ADDED SAME HEIGHT HERE[/B]
background: #444;
}
Now both sides are forced to this height value regardless of content. Is this a cheap cheat or a strike of genius? I'm an entry level css adopter...
Thanks. Thanks
Ta

