Search code examples
htmlcsslayoutweb

Creating a two-column-100% layout with Bootstrap


So I'm trying to create a layout with twitter bootstrap and Ryan Fait's sticky footer

<body>
  <div class="wrapper">
    <div class="header"></div>

    <div class="user-panel">
      <h1>Side Panel</h1>
    </div>

    <div class="content">Hello World!</div>

    <div class="push"></div>
  </div>
  <div class="footer"></div>
</body>

I can't seem to expand the user-panel and content to 100% height, tried these, but they don't work:

http://www.sitepoint.com/forums/showthread.php?868712-100-height-sidebar-background

http://fiddle.jshell.net/teresko/UG8Rk/show/ I need the rounded borders so...

Here's the CSS:

/* Header */
.header {
    height: 40px;
    margin-top: 0px;

    border: 1px solid #999;
    -webkit-border-radius: 0px 0px 5px 5px;
    -moz-border-radius: 0px 0px 5px 5px;
    border-radius: 0px 0px 5px 5px;
    -webkit-box-shadow: #666 0px 1px 1px;
    -moz-box-shadow: #666 0px 1px 1px;
    box-shadow: #666 0px 1px 1px;
    background: #f3f3f1;
    background: -webkit-gradient(linear, 0 0, 0 bottom, from(#f3f3f1), to(#2b2b2b));
    background: -webkit-linear-gradient(#f3f3f1, #2b2b2b);
    background: -moz-linear-gradient(#f3f3f1, #2b2b2b);
    background: -ms-linear-gradient(#f3f3f1, #2b2b2b);
    background: -o-linear-gradient(#f3f3f1, #2b2b2b);
    background: linear-gradient(#f3f3f1, #2b2b2b);
    -pie-background: linear-gradient(#f3f3f1, #2b2b2b);
    behavior: url(/PIE.htc);
}
/* End of Header */

/* Footer */
.footer {
    margin-top: 12px;
    background-color: #000;

    margin-bottom: 0px;
    margin-right: 20px;
    margin-left: 20px;
    clear: both;
    height: 40px;
    border: 1px solid #999;
    -webkit-border-radius: 5px 5px 0px 0px;
    -moz-border-radius: 5px 5px 0px 0px;
    border-radius: 5px 5px 0px 0px;
    -webkit-box-shadow: #666 0px 1px 1px;
    -moz-box-shadow: #666 0px 1px 1px;
    box-shadow: #666 0px 1px 1px;
    background: #f3f3f1;
    background: -webkit-gradient(linear, 0 0, 0 bottom, from(#f3f3f1), to(#2b2b2b));
    background: -webkit-linear-gradient(#f3f3f1, #2b2b2b);
    background: -moz-linear-gradient(#f3f3f1, #2b2b2b);
    background: -ms-linear-gradient(#f3f3f1, #2b2b2b);
    background: -o-linear-gradient(#f3f3f1, #2b2b2b);
    background: linear-gradient(#f3f3f1, #2b2b2b);
    -pie-background: linear-gradient(#f3f3f1, #2b2b2b);
    behavior: url(/PIE.htc);
}
/* End of Footer */

/* Sticky footer by Ryan Fait... with a little customization*/
* {
    margin: 0;
}

html,
body {
    height: 100%;
}

.wrapper {
    padding-left: 20px;
    padding-right: 20px;
    min-height: 100%;
    height: auto !important;
    height: 100%;
    margin: 0 auto -4em;
}

.push {
    height: 40px;
    clear: both;
}
/* End of Sticky footer*/

/* User Panel ( that sidepanel on the left side with navigation etc) */
.user-panel {
    border: 1px solid #999;
    -webkit-border-radius: 5px 5px 5px 5px;
    -moz-border-radius: 5px 5px 5px 5px;
    border-radius: 5px 5px 5px 5px;
    -webkit-box-shadow: #666 0px 1px 1px;
    -moz-box-shadow: #666 0px 1px 1px;
    box-shadow: #666 0px 1px 1px;
    background: #f3f3f1;
    background: -webkit-gradient(linear, 0 0, 0 bottom, from(#f3f3f1), to(#2b2b2b));
    background: -webkit-linear-gradient(#f3f3f1, #2b2b2b);
    background: -moz-linear-gradient(#f3f3f1, #2b2b2b);
    background: -ms-linear-gradient(#f3f3f1, #2b2b2b);
    background: -o-linear-gradient(#f3f3f1, #2b2b2b);
    background: linear-gradient(#f3f3f1, #2b2b2b);
    -pie-background: linear-gradient(#f3f3f1, #2b2b2b);
    behavior: url(/PIE.htc);
    width: 175px;
    float: left;
    height: inherit;
    background: gray;
}
/* End of User Panel */

Any help is appreciated... thanks...

EDIT:

Thanks to Andrea Ligios for the fiddle!

http://jsfiddle.net/RPFcN/2/

Works well with Firefox, but doesn't work on Chrome...


Solution

  • You can place this code inside your side-panel element:

    .user-panel {
        display: block;
        position:absolute;
        height:auto;
        bottom:0;
        top:0;
        ...
        // Rest of the properties
    }
    

    Hope this helps :)