如何使用 bootstrap 3 创建粘性左侧边栏菜单?

Posted

技术标签:

【中文标题】如何使用 bootstrap 3 创建粘性左侧边栏菜单?【英文标题】:How to create a sticky left sidebar menu using bootstrap 3? 【发布时间】:2013-10-30 12:11:21 【问题描述】:

我想用 bootstrap 3 创建一个左粘性栏菜单,例如:

http://getbootstrap.com/getting-started/

我会阅读给定的文档http://getbootstrap.com/javascript/#affix

我尝试使用.affix,但结果为零。


更新:@Skelly, 谢谢你的好榜样。是的,我想要你的例子。我会下载你的示例 html,但下载后 html 文件的侧栏在那里不起作用。

【问题讨论】:

可能重复:***.com/questions/19099325/… 如果你“明白了”,你应该回答这个问题来帮助别人。 您可以从这些集合中找到一个粘性左侧边栏菜单designerslib.com/bootstrap-sidebar-menu-templates 【参考方案1】:

引导程序 3

这是一个有效的左侧边栏示例:

http://bootply.com/90936(类似于 Bootstrap 文档)

诀窍是使用 affix 组件和一些 CSS 来定位它:

  #sidebar.affix-top 
    position: static;
    margin-top:30px;
    width:228px;
  

  #sidebar.affix 
    position: fixed;
    top:70px;
    width:228px;
  

编辑-另一个example with footer and affix-bottom


引导程序 4

Affix 组件已在 Bootstrap 4 中移除,因此要创建粘性侧边栏,您可以使用像 Bootstrap 4 sticky sidebar example 这样的 3rd 方 Affix 插件,或使用 sticky-top是explained in this answer。

相关:Create a responsive navbar sidebar "drawer" in Bootstrap 4?

【讨论】:

好吧,我参加聚会很晚了,但是正如您在 bootply 上的示例所暗示的那样,如果您已经看到,一旦您单击第 2 部分,标题就会被顶部导航栏隐藏。我也遇到了同样的问题,你能帮我解决一下吗? 在锚点 (h2) #mainCol h2 padding-top: 55px; margin-top: -55px; codeply.com/go/chA684SPpu【参考方案2】:

您也可以尝试使用像 Fixed-Sticky 这样的 Polyfill。特别是当您使用 Bootstrap4 时,affix 组件是no longer included:

删除了 Affix jQuery 插件。我们建议使用位置:sticky polyfill 代替。

【讨论】:

根据您提供的链接,该插件现已弃用。【参考方案3】:

我在我的代码中使用了这种方式

$(function()
    $('.block').affix();
)

【讨论】:

在没有必要的地方使用 javascript/jquery 是一个糟糕的主意,但可以通过 CSS 解决。 @WadeShuler,没有 JS 就无法解决它,因为您必须根据页面滚动切换 .fixed 我在午夜时分浏览了页面。这个问题的标题是关于一个粘性侧边栏,它可以在没有任何 JS 的情况下使用 CSS 完成。他链接到一个关于词缀是的消息来源。所以这取决于他是否想要词缀的作用,或者他真的只是想要一个固定在页面侧面的侧边栏。如果他不想/不需要词缀的好处并且纯 CSS 选项可以完成这项工作,那么他不需要使用任何额外的和不必要的 JS。我坚信保持源头清洁。我没有加载任何我不需要的脚本,也没有任何我不需要的代码。 @WadeShuler,绝对同意你的观点,不要在 CSS 任务中使用 JS。但是affix,bootstrap affix,不仅仅是一个固定的侧边栏,需要和DOM交互,你知道没有JS是解决不了的。我们无法确定作者到底想要达到什么目的,所以我发布了记录在案的 API 方法来达到“粘性栏”

以上是关于如何使用 bootstrap 3 创建粘性左侧边栏菜单?的主要内容,如果未能解决你的问题,请参考以下文章

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

为啥侧边栏下拉菜单不起作用 bootstrap 3

修复了 flexbox 项内的元素

使用带有两行的粘性页脚创建响应式 Bootstrap 样式

自定义奏鸣曲左侧边栏

左侧边栏出现在分组产品页面上