有时候,当页面内容较短,撑不开浏览器高度,但是又希望footer能在窗口最低端。
思路一:将footer的父级元素的最小高度设置为100%,并相对定位;父级元素内要预留footer的高度;并将footer的绝对定位(absolute),置底(bottom:0);
HTML
<div id="container">
<div id="header">header</div>
<div id="body">body</div>
<div id="footer">footer</div>
</div>
CSS
html, body { margin: 0; padding: 0; height: 100%; }
#container { min-height: 100%; position: relative; }
#header { background: #ff0; padding: 10px; }
#body { padding-top: 10px; padding-bottom: 40px; }
#footer { position: absolute; bottom: 0; width: 100%; height: 40px; background: #6cf; }
效果图:
思路二:将html和body设置为100%;然后就可以在100%的高度中通过padding给header、footer空出两部分空白区域,再通过给header设置等同于自身高度的负值margin-bottom,给footer设置等同于自身高度的负值margin-top,就完美的把两者移回可见区域,如此以来,既满足content部分不满一屏时footer在底部,又满足了,超过一屏时footer被撑开的需求。
HTML:
<body>
<header>
header
</header>
<section class="content">
contetn
</section>
<footer class="footer">
footer
</footer>
</body>
CSS:
html, body { height: 100%; }
header { height: 60px; margin-bottom: -60px; background: #1381cc; color: #FFF; position: relative; }
section { background: #fff; min-height: 100%; padding: 60px 0 60px; }
footer { height: 60px; margin-top: -60px; background: #0c4367; color: #FFF; }
效果图: