100% Height not expanding passed the bottom of the browser window??
Posted: 19 August 2009 10:06 PM   [ Ignore ]
Newbie
Rank
Total Posts:  3
Joined  2009-08-19

Ok - so i am mocking up some layouts for a upcoming project and am having problems with 100% height.

I have a two column layout - #leftcol and #rightcol. Leftcol is for the navigation and rightcol for content. Leftcol needs to stretch 100% vertically so I have set the html and body tag to height:100%. Then, I have set #leftcol to min-height:100%. This works fine when only the leftcol is on the page but when I add my rightcol div things start to go wrong. If the content (text) is fairly short, the leftcol stretches 100% as it should.

However, if there is a lot of content in rightcol meaning you have to scroll, when you scroll down the red background on leftcol stops where the bottom of the browser originally finished.

I have been searching for hours on Google and forums but can not find any fix for this. I have used 100% height before with no problems but never in this way.

It would be great if anyone has any ideas as to how to overcome this as I am well and truly stumped!

I have attached the full code below if anyone has a chance to play around with this.

Thanks

My code is as follows:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<
html lang="en">
<
head><title>100Height CSS Layout</title>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<
style type="text/css">

bodyhtml {
    height
:100%;
    
margin:0;
    
padding:0;
    
}

#leftcol {
    
width:300px;
    
min-height:100%;
    
float:left;
    
background-colorred;
    
}
    
#rightcol {
    
width:600px;
    
float:left;
    
background-colorgreen;
    
}
    
</style>
</
head>
<
body>
<
div id="leftcol">
  <
h1>Leftcols</h1>
<
p>Lorem ipsum dolor sit ametconsectetuer adipiscing elitQuisque temporNam in libero vel nisi accumsan euismodQuisque quis nequeDonec condimentumenim convallis vestibulum variusquam mi accumsan diamsollicitudin ultricies odio ante vitae purusEtiam ultricies quamVestibulum turpis turpisfermentum utaccumsan quistempor atipsumNam felis elitsollicitudin idultrices faucibusfringilla velduiAliquam tincidunt iaculis erosSed in loremNullam eu enimQuisque tristique pretium diamFusce tempor sollicitudin ligulaDonec purus erosmattis quismattis vestibulumcongue quisfelisNulla facilisiNam ultricies posuere justoIn feugiat.</p>
</
div>
<
div id="rightcol">
  <
h1>Rightcols</h1>
<
p>Lorem ipsum dolor sit ametconsectetuer adipiscing elitQuisque temporNam in libero vel nisi accumsan euismodQuisque quis nequeDonec condimentumenim convallis vestibulum variusquam mi accumsan diamsollicitudin ultricies odio ante vitae purusEtiam ultricies quamVestibulum turpis turpisfermentum utaccumsan quistempor atipsumNam felis elitsollicitudin idultrices faucibusfringilla velduiAliquam tincidunt iaculis erosSed in loremNullam eu enimQuisque tristique pretium diamFusce tempor sollicitudin ligulaDonec purus erosmattis quismattis vestibulumcongue quisfelisNulla facilisiNam ultricies posuere justoIn feugiat.</p>
<
p>Lorem ipsum dolor sit ametconsectetuer adipiscing elitQuisque temporNam in libero vel nisi accumsan euismodQuisque quis nequeDonec condimentumenim convallis vestibulum variusquam mi accumsan diamsollicitudin ultricies odio ante vitae purusEtiam ultricies quamVestibulum turpis turpisfermentum utaccumsan quistempor atipsumNam felis elitsollicitudin idultrices faucibusfringilla velduiAliquam tincidunt iaculis erosSed in loremNullam eu enimQuisque tristique pretium diamFusce tempor sollicitudin ligulaDonec purus erosmattis quismattis vestibulumcongue quisfelisNulla facilisiNam ultricies posuere justoIn feugiat.</p>
<
p>Lorem ipsum dolor sit ametconsectetuer adipiscing elitQuisque temporNam in libero vel nisi accumsan euismodQuisque quis nequeDonec condimentumenim convallis vestibulum variusquam mi accumsan diamsollicitudin ultricies odio ante vitae purusEtiam ultricies quamVestibulum turpis turpisfermentum utaccumsan quistempor atipsumNam felis elitsollicitudin idultrices faucibusfringilla velduiAliquam tincidunt iaculis erosSed in loremNullam eu enimQuisque tristique pretium diamFusce tempor sollicitudin ligulaDonec purus erosmattis quismattis vestibulumcongue quisfelisNulla facilisiNam ultricies posuere justoIn feugiat.</p>
<
p>Lorem ipsum dolor sit ametconsectetuer adipiscing elitQuisque temporNam in libero vel nisi accumsan euismodQuisque quis nequeDonec condimentumenim convallis vestibulum variusquam mi accumsan diamsollicitudin ultricies odio ante vitae purusEtiam ultricies quamVestibulum turpis turpisfermentum utaccumsan quistempor atipsumNam felis elitsollicitudin idultrices faucibusfringilla velduiAliquam tincidunt iaculis erosSed in loremNullam eu enimQuisque tristique pretium diamFusce tempor sollicitudin ligulaDonec purus erosmattis quismattis vestibulumcongue quisfelisNulla facilisiNam ultricies posuere justoIn feugiat.</p>
</
div>
</
body>
</
html
Profile
 
 
Posted: 20 August 2009 10:46 PM   [ Ignore ]   [ # 1 ]
Newbie
Rank
Total Posts:  4
Joined  2008-08-07

I have looked into your problem and believe that I have the solution.

First thing to do is wrap your two column layout in a DIV. I usually <div id=“wrapper”></div>. This DIV will contain the two columns and also provide the following CSS properties: float: left; width: 900px; position: relative; and background: red;. Next you can remove the min-height: 100%; property. It is not necessary unless you need it for the design that you are implementing. The wrapper DIV will provide the background for the left column DIV as the right column DIV has more content and causes the wrapper DIV to stretch to accommodate. If you wanted to use an image for your design, just create the graphic in Photoshop with 900 pixels width and whatever height, could be 1 pixel or 100 pixels, depends on the design, and use the background: url(../images/wrapperBG.png) repeat-y left top; property to have the graphic repeat in the wrapper DIV. This is the CSS Faux Column technique.

Here is the updated code that I used to test your problem:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<
html lang="en">
<
head><title>100Height CSS Layout</title>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<
style type="text/css">

bodyhtml {
    height
:100%;
    
margin:0;
    
padding:0;
    
}

#wrapper {
    
floatleft
    
width900px
    
positionrelative;
    
backgroundred;
    
}
    
#leftcol {
    
width:300px;
    
float:left;
    
background-colorred;
    
}
    
#rightcol {
    
width:600px;
    
float:left;
    
background-colorgreen;
    
}
    
</style>
</
head>
<
body>
<
div id="wrapper">
<
div id="leftcol">
  <
h1>Leftcols</h1>
<
p>Lorem ipsum dolor sit ametconsectetuer adipiscing elitQuisque temporNam in libero vel nisi accumsan euismodQuisque quis nequeDonec condimentumenim convallis vestibulum variusquam mi accumsan diamsollicitudin ultricies odio ante vitae purusEtiam ultricies quamVestibulum turpis turpisfermentum utaccumsan quistempor atipsumNam felis elitsollicitudin idultrices faucibusfringilla velduiAliquam tincidunt iaculis erosSed in loremNullam eu enimQuisque tristique pretium diamFusce tempor sollicitudin ligulaDonec purus erosmattis quismattis vestibulumcongue quisfelisNulla facilisiNam ultricies posuere justoIn feugiat.</p>
</
div>
<
div id="rightcol">
  <
h1>Rightcols</h1>
<
p>Lorem ipsum dolor sit ametconsectetuer adipiscing elitQuisque temporNam in libero vel nisi accumsan euismodQuisque quis nequeDonec condimentumenim convallis vestibulum variusquam mi accumsan diamsollicitudin ultricies odio ante vitae purusEtiam ultricies quamVestibulum turpis turpisfermentum utaccumsan quistempor atipsumNam felis elitsollicitudin idultrices faucibusfringilla velduiAliquam tincidunt iaculis erosSed in loremNullam eu enimQuisque tristique pretium diamFusce tempor sollicitudin ligulaDonec purus erosmattis quismattis vestibulumcongue quisfelisNulla facilisiNam ultricies posuere justoIn feugiat.</p>
<
p>Lorem ipsum dolor sit ametconsectetuer adipiscing elitQuisque temporNam in libero vel nisi accumsan euismodQuisque quis nequeDonec condimentumenim convallis vestibulum variusquam mi accumsan diamsollicitudin ultricies odio ante vitae purusEtiam ultricies quamVestibulum turpis turpisfermentum utaccumsan quistempor atipsumNam felis elitsollicitudin idultrices faucibusfringilla velduiAliquam tincidunt iaculis erosSed in loremNullam eu enimQuisque tristique pretium diamFusce tempor sollicitudin ligulaDonec purus erosmattis quismattis vestibulumcongue quisfelisNulla facilisiNam ultricies posuere justoIn feugiat.</p>
<
p>Lorem ipsum dolor sit ametconsectetuer adipiscing elitQuisque temporNam in libero vel nisi accumsan euismodQuisque quis nequeDonec condimentumenim convallis vestibulum variusquam mi accumsan diamsollicitudin ultricies odio ante vitae purusEtiam ultricies quamVestibulum turpis turpisfermentum utaccumsan quistempor atipsumNam felis elitsollicitudin idultrices faucibusfringilla velduiAliquam tincidunt iaculis erosSed in loremNullam eu enimQuisque tristique pretium diamFusce tempor sollicitudin ligulaDonec purus erosmattis quismattis vestibulumcongue quisfelisNulla facilisiNam ultricies posuere justoIn feugiat.</p>
<
p>Lorem ipsum dolor sit ametconsectetuer adipiscing elitQuisque temporNam in libero vel nisi accumsan euismodQuisque quis nequeDonec condimentumenim convallis vestibulum variusquam mi accumsan diamsollicitudin ultricies odio ante vitae purusEtiam ultricies quamVestibulum turpis turpisfermentum utaccumsan quistempor atipsumNam felis elitsollicitudin idultrices faucibusfringilla velduiAliquam tincidunt iaculis erosSed in loremNullam eu enimQuisque tristique pretium diamFusce tempor sollicitudin ligulaDonec purus erosmattis quismattis vestibulumcongue quisfelisNulla facilisiNam ultricies posuere justoIn feugiat.</p>
<
p>Lorem ipsum dolor sit ametconsectetuer adipiscing elitQuisque temporNam in libero vel nisi accumsan euismodQuisque quis nequeDonec condimentumenim convallis vestibulum variusquam mi accumsan diamsollicitudin ultricies odio ante vitae purusEtiam ultricies quamVestibulum turpis turpisfermentum utaccumsan quistempor atipsumNam felis elitsollicitudin idultrices faucibusfringilla velduiAliquam tincidunt iaculis erosSed in loremNullam eu enimQuisque tristique pretium diamFusce tempor sollicitudin ligulaDonec purus erosmattis quismattis vestibulumcongue quisfelisNulla facilisiNam ultricies posuere justoIn feugiat.</p>
</
div>
</
div
Profile
 
 
Posted: 22 August 2009 06:16 PM   [ Ignore ]   [ # 2 ]
Newbie
Rank
Total Posts:  3
Joined  2009-08-19

That worked great - thanks!!

Profile