-1

I wanted to use a dropshadow on both sides of my main content but it's not reaching the bottom of the page. It cuts it off what looks like 100 or so px before the end. Haven't been able to figure out why. Would appreciate any help!

HTML file: http://db.tt/0z0cNVIt Stylesheet: http://db.tt/1cJDzbJ0

HTML

<div id="container">
    <div id="sidebar">
        <img name="logo" src="" width="280" height="150" alt="" />
        <br />
        <br />Babylon Citizens Council of the Arts is a not-for-profit arts organization bringing theatre, music, fine arts and cultural events to the residents of the Town of Babylon.
        <br />
        <br />
        <ul id="nav">
            <li><a href="about.html">About</a>
            </li>
            <li><a href="events.html">Events</a>
            </li>
            <li><a href="programs.html">Programs</a>
            </li>
            <li><a href="comp.html">Competitions</a>
            </li>
            <li><a href="photos.html">Photos</a>
            </li>
            <li><a href="membership.html">Membership</a>
            </li>
            <li><a href="contact.html">Contact</a>
            </li>
        </ul>
        <br />Follow us on social networks!
        <br />
        <br />
<a href="#"><img src="images/fb.png" /></a>  <a href="#"><img src="images/twitter.png" /></a>

    </div>
    <div class="content">
         <h3>Welcome to the Babylon Citizens Council on the Arts!</h3>

        <p><a href="#">link test</a>
        </p>
        <div id="slider">SLIDER WILL BE HERE</div>
        <!-- end .content -->
    </div>
    <!-- end .container -->
</div>

CSS

@charset"UTF-8";
 html, body {
    height: 100%;
}
body {
    font: 12px Verdana, Arial, Helvetica, sans-serif;
    line-height: 22px;
    background: url(images/bg.png);
    margin: 0;
    padding: 0;
    color: #666;
}
/* ~~ Element/tag selectors ~~ */
 ul, ol, dl {
    /* Due to variations between browsers, it's best practices to zero padding and margin on lists. For consistency, you can either specify the amounts you want here, or on the list items (LI, DT, DD) they contain. Remember that what you do here will cascade to the .nav list unless you write a more specific selector. */
    padding: 0;
    margin: 0;
}
h1, h2, h3, h4, h5, h6, p {
    margin-top: 0;
    /* removing the top margin gets around an issue where margins can escape from their containing div. The remaining bottom margin will hold it away from any elements that follow. */
    padding-right: 15px;
    padding-left: 15px;
    /* adding the padding to the sides of the elements within the divs, instead of the divs themselves, gets rid of any box model math. A nested div with side padding can also be used as an alternate method. */
}
a img {
    /* this selector removes the default blue border displayed in some browsers around an image when it is surrounded by a link */
    border: none;
}
/* ~~ Styling for your site's links must remain in this order - including the group of selectors that create the hover effect. ~~ */
 a:link {
    color: #42413C;
    text-decoration: underline;
    /* unless you style your links to look extremely unique, it's best to provide underlines for quick visual identification */
}
a:visited {
    color: #6E6C64;
    text-decoration: underline;
}
a:hover, a:active, a:focus {
    /* this group of selectors will give a keyboard navigator the same hover experience as the person using a mouse. */
    text-decoration: none;
}
/* ~~ this fixed width container surrounds all other elements ~~ */
 #container {
    width: 960px;
    height: 100%;
    background: #FFF;
    display: block;
    margin: 0 auto;
    /* the auto value on the sides, coupled with the width, centers the layout */
    -moz-box-shadow: 10px 0 5px -10px #cab7aa, -10px 0 5px -10px #cab7aa;
    -webkit-box-shadow: 10px 0 5px -10px #cab7aa, -10px 0 5px -10px #cab7aa;
    box-shadow: 10px 0 10px -10px #cab7aa, -10px 0 10px -10px #cab7aa;
    /* For IE 8 */
    -ms-filter:"progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color='#cab7aa')";
    /* For IE 5.5 - 7 */
    filter: progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color='#cab7aa');
}
/* ~~ This is the layout information. ~~ 

1) Padding is only placed on the top and/or bottom of the div. The elements within this div have padding on their sides. This saves you from any "box model math". Keep in mind, if you add any side padding or border to the div itself, it will be added to the width you define to create the *total* width. You may also choose to remove the padding on the element in the div and place a second div within it with no width and the padding necessary for your design.

*/
 #sidebar {
    width: 280px;
    height: 100%;
    float: left;
    background-color: #f5e9e0;
    padding: 40px;
}
#nav {
    list-style-type: none;
    line-height: 32px;
}
#nav a, #nav a:link, #nav a:visited, #nav a:active {
    text-decoration: none;
    border-bottom: 1px dotted #784e33;
    display: block;
}
#nav a:hover {
    text-decoration: none;
    border-bottom: 1px dotted #784e33;
    background-color: #fcf5f0;
}
.content {
    width: 560px;
    height: 100%;
    float: right;
    background-color: #FFF;
    padding: 40px 20px 40px 20px;
}
/* ~~ miscellaneous float/clear classes ~~ */
 .fltrt {
    /* this class can be used to float an element right in your page. The floated element must precede the element it should be next to on the page. */
    float: right;
    margin-left: 8px;
}
.fltlft {
    /* this class can be used to float an element left in your page. The floated element must precede the element it should be next to on the page. */
    float: left;
    margin-right: 8px;
}
.clearfloat {
    /* this class can be placed on a <br /> or empty div as the final element following the last floated div (within the #container) if the overflow:hidden on the .container is removed */
    clear:both;
    height:0;
    font-size: 1px;
    line-height: 0px;
}
detection
  • 3
  • 2
  • 4

1 Answers1

0

You need to remove your body and html height (100% only uses the browser height) and put a clearing div just before you close your container div.

Clearing div: <div style="clear: both;"></div>

See it here: http://jsfiddle.net/7mJMx/1/

Thanks to @Allendar for making the original jsfiddle!

Shomz
  • 37,421
  • 4
  • 57
  • 85
  • Thanks guys, sorry about the Fiddle! Works great. – detection Apr 17 '13 at 23:03
  • Using extra markup to clear floats is so 10 years ago. http://codepen.io/cimmanon/pen/qDjdr – cimmanon Apr 17 '13 at 23:45
  • @LinusCaldwell Sorry, sure. Just one more question... I had the 100% height because I wanted the sidebar and content to go to the bottom of the page even if there wasn't content filling it. Can I not do this with the dropshadow? – detection Apr 18 '13 at 03:30
  • You can do something like `min-height: 100%;` – Shomz Apr 18 '13 at 11:19
  • I tried using that under html, body, and both and none seemed to do the trick. – detection Apr 18 '13 at 19:09
  • html, body, as well as the sidebar... try experimenting in the inspector window a bit – Shomz Apr 18 '13 at 19:17
  • http://jsfiddle.net/7mJMx/4/ Please note that I had to remove vertical padding on sidebar and content elements - this is required in order not to make them taller than 100%. And to maintain the inital padding you had, you can make an element inside each of them, and add margin or padding to that one. – Shomz Apr 18 '13 at 19:36
  • Ahhh, I see. So going full circle it's the padding that caused the drop shadow to not reach the bottom. I figured as much. Thanks for all your help, @Shomz! – detection Apr 18 '13 at 19:49
  • I don't mean to prolong this discussion/beat a dead horse/etc but now I find that when I have content that causes the page to scroll, the container/content/sidebar just end at the bottom of the page before scrolling. – detection Apr 18 '13 at 20:22
  • that's why you should use min-height instead of height – Shomz Apr 18 '13 at 22:53