我需要在页面上放一个粘性页脚,但是我的页脚没有明确的高度设置。在较小的屏幕上 - 行调整大小,页脚变长。
因此,getbootstrap上提供的默认粘性页脚示例不起作用,因为它需要固定的页脚高度。
有任何方法可以实现吗?
/* Sticky footer styles
-------------------------------------------------- */
html {
position: relative;
min-height: 100%;
}
body {
/* Margin bottom by footer height */
margin-bottom: 60px;
}
.footer {
position: absolute;
bottom: 0;
width: 100%;
/* Set the fixed height of the footer here */
height: 60px;
line-height: 60px; /* Vertically center the text there */
background-color: #f5f5f5;
}
/* Custom page CSS
-------------------------------------------------- */
/* Not required for template or sticky footer method. */
body > .container {
padding: 60px 15px 0;
}
.footer > .container {
padding-right: 15px;
padding-left: 15px;
}
code {
font-size: 80%;
}
答案 0 :(得分:14)
现在Bootstrap 4是flexbox,可以使用...
完成粘性页脚<wrapper class="d-flex flex-column">
<nav>
</nav>
<main class="flex-fill">
</main>
<footer>
</footer>
</wrapper>
body, wrapper {
min-height:100vh;
}
.flex-fill {
flex:1 1 auto;
}
演示:Bootstrap 4 Sticky Footer(4.0.0)
注意: flex-fill
实用程序类将included in the next Bootstrap 4.1发布。因此,在该版本发布之后,不需要额外的用于flex-fill的CSS。
答案 1 :(得分:0)
答案 2 :(得分:0)
一种非常简单的方法是将导航栏用作页脚。它带有一个非常方便的固定底部类。要更改间距,请参见此处的文档... https://getbootstrap.com/docs/4.2/utilities/spacing/
<nav class="navbar fixed-bottom navbar-light bg-light">
<a class="navbar-brand" href="#">Fixed bottom</a>
</nav>
答案 3 :(得分:0)
如果页面高度小于视口高度,则此脚本会动态添加fixed-bottom
类:
jQuery(function ($) {
function fixedFooter(){
var $footer = $('.site-footer');
if(typeof $footer === 'undefined') return 0;
$footer.removeClass('fixed-bottom');
if($(window).height() > $body.height()){
$footer.addClass('fixed-bottom');
}
}
// call `fixedFooter()` when page height changed (not by viewport resize)
if(typeof window.lastPageHeight === 'undefined'){
setInterval(function () {
if(window.lastPageHeight !== $body.height()){
fixedFooter();
}
}, 1000);
}
window.lastPageHeight = $body.height();
}
fixedFooter(); // first call
// call `fixedFooter()` when viewport height changed
window.addEventListener('resize', function(){
fixedFooter();
}, true);
});
样式,以防止与模式,固定的侧边栏等重叠...
.site-footer.fixed-bottom {
z-index: 1 !important;
}