我正在使用display: table
属性来实现具有以下功能的粘性页脚:
这是我目前所拥有的一个小提琴:JSFiddle
一切都很完美,但我想要实现的是一个在屏幕上看不到的页脚,除非用户滚动。如果内容不足,页脚应该在窗口正下方,否则内容应该推送它。这是一张图片,解释了我的意思。左边是我现在所拥有的,正是我想要实现的目标。
答案 0 :(得分:2)
你可以使用flexbox,以及它的视图高度!
.container {
display: flex;
flex-direction: column;
justify-content: start;
align-items: stretch;
height: 100vh;
}
.header {
flex: 0 0 50px;
background: lightblue;
}
.content {
flex: 1 1 auto;
background: lightgrey;
}
.footer {
height: 100px;
background: darkcyan;
}
<div class="container">
<div class="header"></div>
<div class="content"></div>
</div>
<div class="footer"></div>
答案 1 :(得分:0)
它只是获得标题高度和内容高度,如果它们小于窗口高度,则相应地设置内容高度。
$(document).ready(function() {
var h = $('#header').height();
var c = $('#content').height();
var w = $(window).height();
if((h + c) < w) {
$('#content').height(w - h);
}
});
答案 2 :(得分:0)
我最终只使用了相同的代码,但我没有让container
中的所有元素离开footer
。似乎工作得恰到好处。这是一个更新的小提琴:JSFiddle
* {
margin: 0;
padding: 0;
}
body, html{
width: 100%;
height: 100%;
}
.container{
width: inherit;
height: inherit;
display: table;
background: red;
}
.container div {
width: inherit;
}
.header {
background: darkgray;
}
.content {
height: 100%;
background: green;
}
.footer {
background: yellow;
}
&#13;
<div class="container">
<div class="header">
<h1>HEADER</h1>
</div>
<div class="content">
<h1>CONTENT</h1><h1>CONTENT</h1><h1>CONTENT</h1>
</div>
</div>
<div class="footer">
<h1>FOOTER</h1>
</div>
&#13;