Bootstrap 粘性页脚

Posted

技术标签:

【中文标题】Bootstrap 粘性页脚【英文标题】:Bootstrap Sticky Footer 【发布时间】:2014-09-09 19:17:38 【问题描述】:

无论页面上的文本有多少或有多少,让页脚始终保持在页面底部的最佳方法是什么。我尝试了几种不同的想法,但是对于新的引导程序,它不想合作。我已经尝试过修复,但这不是我想要的。

我希望底部的黑色页脚栏始终与页面底部对齐。

我的 CSS:

/* Chrome Frame Prompt
-------------------------------------------------- */
.chromeframe margin: .2em 0; background: #ECCC5B; color: #000000; margin-top: -55px; margin-bottom: 55px; padding: .2em 0; z-index: -100 ; text-align :center; 

/* Bootstrap Styles
-------------------------------------------------- */
.navbar-inverse  background-color: #3A3A3A; border-color: #3A3A3A; 
.navbar-inverse .navbar-brand  color: #BE1E2D; font-weight: bold; margin-top: 12px; padding-left: 40px; 
.navbar-inverse .navbar-toggle  margin-top: 20px; 
.navbar-inverse .navbar-nav>li>a  color: #FFFFFF; height: 75px; padding-top: 28px; 
.navbar-inverse .navbar-nav>li>a:hover  color: #BE1E2D; 
.navbar-inverse .navbar-nav>.open>a, .navbar-inverse .navbar-nav>.open>a:hover, .navbar-inverse .navbar-nav>.open>a:focus  color: #BE1E2D; 
.dropdown-menu  background-color: #080808; border: none; border-radius: 0; -webkit-box-shadow: none; box-shadow: none; 
.dropdown-menu>li>a  line-height: 1.6; color: #FFFFFF; 
.dropdown-menu>li>a:hover  line-height: 1.6; color: #BE1E2D; 

/* Main Styles
-------------------------------------------------- */
html, body  position: relative; min-height: 100%; 
body  -webkit-font-smoothing: antialiased; font: normal 16px/1.5; color: #232525; padding-top: 50px; padding-bottom: 20px; 

.logo  float: left; 
.logo:hover  

.main-container  padding-bottom: 100px; 
.main-row  padding-top: 15px; 

.footer  position: absolute; color: #999999; background-color: #000000; bottom: 0; width: 100%; height: 100px;  
.logo-footer  float: left; margin-top: 13px; 
.footer-nav  color: #999999; display: block; float: left; margin: 40px 0 0 15px; 
.footer-copy  float: right; margin: 40px 0 0 0; text-align: left; 

/* RESPONSIVE CSS
--------------------------------------------------*/
@media (max-width:1150px)  


@media (max-width:900px)  


@media (max-width:767px)  
    .navbar-inverse .navbar-nav>li>a  height: 40px; padding-top: 11px; 
    .footer-copy  float: none; text-align: center; 

@media (max-width:340px)  


【问题讨论】:

请澄清您的问题,因为它不是很清楚,请准确描述您想要做什么。 ***.com/questions/17966140/… 【参考方案1】:

解决方案是确保您的内容始终至少是屏幕的高度,如果窗口足够大,这将导致页脚被推到屏幕底部。

将您的页面内容(不包括页脚)包装在另一个 <div> 中并按照其样式,将 min-height 设置为 100%

这样做的缺点是页脚现在经常挂在窗口外,要解决这个问题,通过将margin-bottom 设置为页脚的负大小(即,如果您的页脚为 50 像素,margin-bottom: -50px)。

之后您会发现的另一个怪癖是页脚可能会与页面内容重叠,要解决此问题,请将之前的元素插入到包装器 div 中,并使其高度与页脚相同。

例如:

body, html 
    height: 100%;
    margin: 0;


.wrapper 
    min-height: 100%;
    margin-bottom: -50px;


.push 
    height: 50px;


.footer-pad 
    height: 50px;

<div class="wrapper">
    <div class="container>
        Some content
    </div>
    <div class="footer-pad"></div>
</div>
<div class="footer">Footer</div>

需要注意的几个重要事项是 html,body 必须设置为 100% 高度,并且 body 必须没有边距,否则你会得到一个恒定的滚动条

http://jsfiddle.net/XJDLk/

【讨论】:

这并没有解决问题。虽然它看起来解决了问题,但如果有更多内容会导致滚动,它会保持静止。 我只使用过 `width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no` 视口。看看你的 css,你需要将 body、html 设置为 100% 的高度,而不是 min-height【参考方案2】:

我在最近的 boostrap 网站中使用了它。希望对您有所帮助。

HTML

<div class="footer_wrapper">
    <div class="container">
        <div class="col-md-3 col-sm-3">
            content
        </div>
        <div class="col-md-3 col-sm-3">
            content
        </div>
        <div class="col-md-3 col-sm-3">
            content
        </div>
        <div class="col-md-3 col-sm-3">
            content
        </div>
    </div>
</div>

css

.footer_wrapper 
  min-height: 270px;
  background-color: #232323;
  color: #8f8f8f;
  bottom: 0;
  padding-top: 0px;
  width: 100%;

【讨论】:

以上是关于Bootstrap 粘性页脚的主要内容,如果未能解决你的问题,请参考以下文章

如何创建一个与 Bootstrap 3 配合得很好的粘性页脚

css bootstrap 3粘性页脚

带图像的 Bootstrap 粘性页脚

css Moodle的粘性页脚与Bootstrap 2

Twitter Bootstrap 粘性页脚和 Jade

导航栏和粘性 Bootstrap 页脚之间的 100% 高度