tags:

views:

25

answers:

1

I have this layout problem. I'm trying to make a layout that has Header, foother and a container. Inside the container there are 4 divs called Left_bar, Right_bar, file_view and main_content.

Header and footer are set to a fixed height. But i want the container to be min 500px height and be higher if that is neccessary. I have tried to set the container to min-height:500px and all the divs inside the container too height:100%, it didnt work.

What would be the best way to accomplish this. Basicly the container should varible the height accordance with the contants in the main_content div. All the other divs in the container should have the same height.

Please see the following code and screenshot

alt text

<html>
<head>
<title></title>
</head>
<body>
<form>

<style type="text/css">

body
{
    padding: 0px;
    width:1000px;
    margin: 0px auto;
    margin-top:5px;
}

#header
{
    background: red;
    height: 30px;
    margin-bottom:5px;
    font-size:30px;
    text-align:center;
    border:solid 1px;
}

#left_bar
{
    background: blue;
    width:40px;
    float:left;
    margin-right:5px;
    border:solid 1px;
    height:100%;
}

#file_view
{
    background: yellow;
    width:150px;
    float:left;
    margin-right:5px;
    border:solid 1px;
    height:100%;
}

#main_contant
{
    background: orange;
    float:left;
    width:747px;
    margin-right:5px;
    border:solid 1px;
    height:100%;
}

#right_bar
{
    background: cyan;
    width:40px;
    float:right;
    border:solid 1px;
    height:100%;
}

#footer
{
    background: purple;
    height: 20px;
    clear:both;
    text-align:center;
    color: white;
    border:solid 1px black;
}

#container
{
    height:500px;
    margin-bottom:5px;
}

#clear
{
    clear:both;
}

</style>

<div id="header">Header</div>

<div id="container"> 
<div id="left_bar">Left bar</div>
<div id="file_view">File view</div>
<div id="main_contant">Main contant</div>
<div id="right_bar">Right bar</div>
<div id="clear"></div>
</div>

<div id="footer">Þetta er footer fyrir síðuna</div>

</form>
</body>
</html>
A: 

Looks like it is not possible to this with pure CSS Version 1 and 2. A bit of javascript is needed. Here is a working solution with a little javascript and a few minor changes to your html and css.

<html>
<head>
<title></title>
</head>
<body>
<style type="text/css">

body
{
    padding: 0px;
    width:1000px;
    margin: 0px auto;
    margin-top:5px;
}

#header
{
    background: red;
    height: 30px;
    margin-bottom:5px;
    font-size:30px;
    text-align:center;
    border:solid 1px;
}

#left_bar
{
    background: blue;
    width:40px;
    float:left;
    margin-right:5px;
    border:solid 1px;
    height:100%;
}

#file_view
{
    background: yellow;
    width:150px;
    float:left;
    margin-right:5px;
    border:solid 1px;
    height:100%;
}

#main_contant
{
    background: orange;
    float:left;
    width:747px;
    margin-right:5px;
    border:solid 1px;
    height:auto;
    min-height: 500px;
}

#right_bar
{
    background: cyan;
    width:40px;
    float:right;
    border:solid 1px;
    height:100%;
}

#footer
{
    background: purple;
    height: 20px;
    clear:both;
    text-align:center;
    color: white;
    border:solid 1px black;
}

#container
{
    margin-bottom:5px;
}

#clear
{
    clear:both;
}

</style>

    <form>
    <div id="pagecontainer">
    <div id="header">Header</div>

    <div id="container"> 
            <div id="left_bar">Left bar</div>

            <div id="file_view">File view</div>
            <div id="main_contant">
                                cMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contant cMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contant  cMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contant cMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contant cMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contant cMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contant cMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contantcMain contant Main contantMain contantMain contantMain contantMain contantMain contantMain contant
            </div>
            <div id="right_bar">Right bar</div>
        <div id="clear"></div>
</div>

    <div id="footer">Þetta er footer fyrir síðuna</div>
    </div>
    </form>

</body>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"&gt;&lt;/script&gt;
<script type="text/javascript">
//Get the height of the middle div and adjust others
var level = $("div#main_contant").height();
$("div#left_bar").height(level);
$("div#left_bar").height(level);
$("div#file_view").height(level);
$("div#right_bar").height(level);
</script>
</html>

I have used Jquery library to read the height of the content div (with variable height) and adjust the heights of other divs accordingly. You may notice that the adjustment of height takes a little time once in a while during a page reload, but if put the library in the same server as the code, this will happen fast enough.

sandeepan