I am trying to implement a CSS sticky footer.
The issue is there is a content DIV that is extending beyond its container causing scroll bars that are not desirable and the background-image hung off the page div does not extend the full height of the document.
Here is my HTML:
<div id="page">
<div id="header">
<dl>
<dt>Header links -</dt>
<dd><a href="#">link 1</a></dd>
<dd><a href="#">link 2</a></dd>
<dd><a href="#">link 3</a></dd>
</dl>
</div>
<div id="content">
<p><a id="modal" href="popup.html" target="_blank">link to popup</a></p>
</div>
<div id="footer">
<dl>
<dt>Footer links -</dt>
<dd><a href="#">link 1</a></dd>
<dd><a href="#">link 2</a></dd>
<dd><a href="#">link 3</a></dd>
</dl>
</div>
</div>
And here is the CSS:
/*--------------------------------------------------------------- global */
html,
body {
color:#969696;
font-size:100%;
height:100%;
}
body {
font:normal 200 70% Arial, Helvetica, Verdana, sans-serif;
}
a,
a:link,
a:visited,
a:hover,
a:active {
border-bottom:1px dashed #ff8400;
color:#ff8400;
text-decoration:none;}
a:hover {
border-bottom-style:solid;}
/*--------------------------------------------------------------- layout */
#page {
background:url("../images/bgMain.jpg") repeat-y center top;
height:100%;
margin:0 auto;
position:relative;
width:1024px;
}
dl,
dt,
dd {
float:left;
}
dd {
margin:0 .2em 0;
}
dd:after {
color:#969696;
content:"|";
padding:0 0 0 .3em;
}
dd:last-child:after {
content:"";
}
/*----------------- header */
#header {
margin:0 auto;
width:726px;
}
#header dl {
float:right;
line-height:60px;
}
/*----------------- content body */
#content {
background:#fff;
border-top-left-radius:5px;
border-top-right-radius:5px;
-moz-border-radius-topleft:5px;
-moz-border-radius-topright:5px;
-webkit-border-top-left-radius:5px;
-webkit-border-top-right-radius:5px;
box-shadow:0 0 12px 0 rgba(0, 0, 0, .1);
-moz-box-shadow:0 0 12px 0 rgba(0, 0, 0, .1);
-webkit-box-shadow:0 0 12px 0 rgba(0, 0, 0, .1);
clear:both;
height:100%;
margin:0 auto;
min-height:100%;
padding:16px 13px 22px;
position:relative;
width:700px;
}
/*----------------- footer */
#footer {
clear:both;
margin:-22px auto;
position:relative;
width:726px;
}
#footer dl {
display:inline;
margin:0 0 0 13px;
}
#footer a,
#footer a:link,
#footer a:visited,
#footer a:hover,
#footer a:active {
border-bottom-color:#969696;
color:#969696;
}
Method 2: (fixed height footer) Apply display:flex and flex-direction:column to the body . Apply margin-top:auto the footer . You're done, because auto margins inside flex containers absorb all available free space, making the footer stick to the bottom.
It is overlapping to your content because of its position. The only way to give them some space between the content and the footer is to remove that custom css and then add a bottom padding in the last section element. Right now, the bottom padding is 0 which is why it is close or overlapping to the footer.
Set the position of div at the bottom of its container can be done using bottom, and position property. Set position value to absolute and bottom value to zero to placed a div at the bottom of container.
The fantastic CSS Tricks website has, in their Snippets area a snippet for a Sticky Footer
http://css-tricks.com/snippets/css/sticky-footer/
or using jQuery
http://css-tricks.com/snippets/jquery/jquery-sticky-footer/
latest link with demo
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With