我已经使用twitter引导框架很长一段时间了,他们最近更新到版本3!
我有麻烦让粘性页脚粘到底部,我已经使用了twitter bootstrap网站提供的启动器模板,但仍然没有运气,有什么想法吗?
我已经使用twitter引导框架很长一段时间了,他们最近更新到版本3!
我有麻烦让粘性页脚粘到底部,我已经使用了twitter bootstrap网站提供的启动器模板,但仍然没有运气,有什么想法吗?
当前回答
如果你想在类中使用自举构建页脚。你还应该写一些javascript:
$(document).ready(function(){
$.fn.resize_footer();
$(window).resize(function() {
$.fn.resize_footer();
});
});
(function($) {
$.fn.resize_footer = function(){
$('body > .container-fluid').css('padding-bottom', $('body > footer').height());
};
});
它将通过固定的页脚防止内容重叠,并且当用户更改窗口/屏幕大小时,它将调整填充底部。
在上面的脚本中,我假设footer直接放置在body标签中,就像这样:
<body>
... content of your page ...
<div class="navbar navbar-default navbar-fixed-bottom">
<div class="container">
<div class="muted pull-right">
Something useful
</div>
... some other footer content ...
</div>
</div>
</body>
这绝对不是最好的解决方案(因为JS可以避免),但它没有任何重叠的问题,它很容易实现和响应性(高度不是硬编码在CSS中)。
其他回答
总结所有这些,只要记住一件事,除了footer以外的所有东西都应该有最小高度:100%或更少。
这个问题已经被flexbox彻底解决了:
https://philipwalton.github.io/solved-by-flexbox/demos/sticky-footer/
HTML
<body class="Site">
<header>…</header>
<main class="Site-content">…</main>
<footer>…</footer>
</body>
CSS
.Site {
display: flex;
min-height: 100vh;
flex-direction: column;
}
.Site-content {
flex: 1;
}
这个棘手的例子对我不适用。 我的解决方案:
#footer {
position: fixed;
bottom: 0;
width: 100%;
height: 3em;
}
使用flexbox是我从CSS-tricks的人那里找到的最简单的方法。这是真正的sticky-footer,它在内容< 100%页面和> 100%页面时工作:
<body>
<div class="content">
content
</div>
<footer></footer>
</body>
和CSS:
html {
height: 100%;
}
body {
min-height: 100%;
display: flex;
flex-direction: column;
}
.content {
flex: 1;
}
请注意,这是bootstrap-不可知论的,所以它可以使用bootstrap,也可以不使用bootstrap。
除了刚才添加的CSS之外,还需要在关闭wrap div之前添加push div
HTML的基本结构是
<div id="wrap">
page content here
<div id="push"></div>
</div> <!-- end wrap -->
<div id="footer">
footer content here
</div> <!-- end footer -->
实时视图 编辑视图