But there are cases we realy need a CSS layout. Like when we have to rearrange the layout depending on the window size of the browser, to accommodate everything from mobile browsers to extra wide monitors.
Here is a Sticky Footer CSS layout.
StickyFooter.html
<!DOCTYPE html> <html> <head> <title></title> <!--[if lte IE 8]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"> </script><![endif]--> <link rel="Stylesheet" href="../System/reset.css" /> <link rel="Stylesheet" href="StickyFooter.css" /> </head> <body> <div id="wrap"> … <div id="footerMargin"></div> </div> <footer id="stickyFooter"> … </footer> <script type="text/javascript" src="StickyFooter.js"></script> <!--[if lte IE 7]><script>StickyResize();</script><![endif]--> </body> </html>StickyFooter.css
/* extract from reset.css */ * {margin:0;box-sizing:border-box;} html, body {height:100%;} /* sticky */ #wrap { min-height:100%; /* ie6: height:auto !important; height:100%; */ } #footerMargin, #stickyFooter {clear:both;} /* footer height */ #wrap {margin-bottom:-10em;} #stickyFooter, #footerMargin {height:10em;}StickyFooter.js (Needed only if you don't know the exact height of the footer)
var $=function(sId){return document.getElementById(sId);}; window.onload = function () { $("stickyFooter").onresize = StickyResize; }; function StickyResize() { var oRect = $("stickyFooter").getBoundingClientRect(); var sHeight = (oRect.bottom - oRect.top).toString() + "px"; $("footerMargin").style.height = sHeight; $("wrap").style.marginBottom = "-" + sHeight; }
Looks great. Keep the good work, I'm reading this!
ReplyDeletehtml5