【问题标题】:Sticky footer on fixed position sidebar, want css solution固定位置侧边栏上的粘页脚,想要css解决方案
【发布时间】:2013-10-29 22:24:36
【问题描述】:

我使用by Martin Bean and Ryan Fait 提供的粘性页脚技术有一段时间,效果很好,直到我发现自己需要在固定位置的侧边栏上放置一个粘性页脚。

由于固定位置侧边栏对文档是不可见的,因此包装器中的边距和填充设置无效。我试图在侧边栏中添加另一个内部包装器,但也没有帮助。我想知道这个请求是否有任何纯 CSS 解决方案?

我必须使用固定定位侧边栏的原因是我在屏幕尺寸较小时使用过渡效果来折叠它。该方法借鉴于StartBootstrap,example simple-sidebar。

顺便说一句:我正在使用 BS3

我的网站的基本设置是:

HTML

<div id="wrap">   
  <div id="sidebar-wrapper">
    <div id="inner-wrap">
      <ul id="sidebar-nav">
        <li>...</li>
        <li>...</li>
      </ul>
    </div>
    <div id="footer">
      Copyright claim
    </div>  
  </div>
  <div id="main-wrapper">
    Some Content
  </div>
</div>

CSS

html, body {
  height: 100%;
}

#wrap {
    height: 100%;
}

#sidebar-wrapper {
  width: 250px;
  position: fixed;
  min-height: 100%;
  height: auto !important;
  height: 100%;
  padding: 0 auto 50px;
  margin: 0 auto -50px;
}

#inner-wrapper {
  min-height: 100%;
  height: auto !important;
  height: 100%;
  margin: 0 auto -50px;
  padding: 0 auto 50px;
  width: 100%; 
}

#sidebar-nav {
  position: relative;
  top: 0px;
  width: 250px;
  margin: 0px;
  padding: 0px;
}

#footer {
  height: 50px;
  position: absolute;
  width: 250px;
}

我做了一个临时的bootply。希望对您有所帮助。

更新 这个问题被巴斯解决了。非常感谢!上述代码不起作用的原因是由于额外的 'height: auto !important;'在父级#sidebar-wrapper 中设置。删除它,然后一切正常。如果你愿意,你也可以删除 #footer 中的 position:absolute 。

【问题讨论】:

    标签: html css twitter-bootstrap-3


    【解决方案1】:

    在我看来,您可以在侧边栏上使用额外的包装器来做同样的事情:

    html

      <!-- Sidebar -->
      <div id="sidebar-wrapper">
       <div id="sidebar-wrapper-wrapper">     
        <ul class="sidebar-nav">
          <li class="sidebar-brand"><a href="#">Start Bootstrap</a></li>
          <li><a href="#">Dashboard</a></li>
          <li><a href="#">Shortcuts</a></li>
          <li><a href="#">Overview</a></li>
          <li><a href="#">Events</a></li>
          <li><a href="#">About</a></li>
          <li><a href="#">Services</a></li>
          <li><a href="#">Contact</a></li>
        </ul>
      </div>
      <div style="background-color:red;height:60px">footer</div>  
    
      </div>
    

    css

    #sidebar-wrapper-wrapper {
        height: auto !important;
        margin: 0 auto -60px;
        min-height: 100%;
        padding: 0 0 60px;
    }
    

    【讨论】:

    • 嗨,Bass,您的答案与我的不同之处在于您将额外的包装器(#sidebar-wrapper-wrapper 在您的答案中,#inner-wrapper 在我的答案中)放在页脚之外和侧边栏内-包装。在较大的屏幕中,粘性页脚仍位于
        下方但不粘在底部是行不通的。原因是一样的,额外的包装器只能获得
          的全高,而不是父级#sidebar-wrapper。还有什么想法吗?
    • 我编辑我的问题以将#inner-wrapper 移到#footer 之外,节省其他人的时间来指出相同的解决方案。
    • 有效!似乎是“高度:自动!重要;”在父级#sidebar-wrapper 中设置会导致
        下的页脚浮动。一旦删除它,页脚就会粘在底部。不知道为什么,有什么想法吗?
    • 在那里看不到任何有用的评论,他们正在谈论我认为无关紧要的 IE hack。无论如何,谢谢。
    猜你喜欢
    • 2014-06-27
    • 2012-10-19
    • 2011-09-11
    • 1970-01-01
    • 2018-02-17
    • 1970-01-01
    • 1970-01-01
    • 2019-03-20
    • 1970-01-01
    相关资源
    最近更新 更多