在bootstrap中 怎么使得导航栏固定在顶部

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在bootstrap中 怎么使得导航栏固定在顶部相关的知识,希望对你有一定的参考价值。

Bootstrap 导航栏可以动态定位。默认情况下,它是块级元素,它是基于在 html 中放置的位置定位的。通过一些帮助器类,可以把它放置在页面的顶部或者底部,或者可以让它成为随着页面一起滚动的静态导航栏。

如果想要让导航栏固定在页面的顶部,请向 .navbar class 添加 class .navbar-fixed-top。

Bootstrap定义:

Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架。Bootstrap 是基于 HTML、CSS、javascript 的。

历史:

Bootstrap 是由 Twitter 的 Mark Otto 和 Jacob Thornton 开发的。Bootstrap 是 2011 年八月在 GitHub 上发布的开源产品。

Bootstrap优点:

    移动设备优先:自 Bootstrap 3 起,框架包含了贯穿于整个库的移动设备优先的样式。

    浏览器支持:所有的主流浏览器都支持 Bootstrap。

        

    容易上手:只要您具备 HTML 和 CSS 的基础知识,您就可以开始学习 Bootstrap。

    响应式设计:Bootstrap 的响应式 CSS 能够自适应于台式机、平板电脑和手机。更多有关响应式设计的内容详见 Bootstrap 响应式设计。

    它为开发人员创建接口提供了一个简洁统一的解决方案。

    它包含了功能强大的内置组件,易于定制。

    它还提供了基于 Web 的定制。

    它是开源的。

    Bootstrap 包的内容

    基本结构:Bootstrap 提供了一个带有网格系统、链接样式、背景的基本结构。这将在 Bootstrap 基本结构 部分详细讲解。

    CSS:Bootstrap 自带以下特性:全局的 CSS 设置、定义基本的 HTML 元素样式、可扩展的 class,以及一个先进的网格系统。这将在 Bootstrap CSS 部分详细讲解。

    组件:Bootstrap 包含了十几个可重用的组件,用于创建图像、下拉菜单、导航、警告框、弹出框等等。这将在 布局组件部分详细讲解。

    JavaScript 插件:Bootstrap 包含了十几个自定义的 jQuery 插件。您可以直接包含所有的插件,也可以逐个包含这些插件。这将在 Bootstrap 插件 部分详细讲解。

    定制:您可以定制 Bootstrap 的组件、LESS 变量和 jQuery 插件来得到您自己的版本。

参考技术A

添加 .navbar-fixed-top 类可以让导航条固定在顶部,还可包含一个 .container 或 .container-fluid 容器,从而让导航条居中,并在两侧添加内补(padding)。

<nav class="navbar navbar-default navbar-fixed-top">
  <div class="container">
    ...
  </div>
</nav>

本回答被提问者和网友采纳

Bootstrap 4 固定顶部导航和固定侧边栏

【中文标题】Bootstrap 4 固定顶部导航和固定侧边栏【英文标题】:Bootstrap 4 fixed top nav and fixed sidebar 【发布时间】:2018-09-13 10:36:42 【问题描述】:

这是一个很好的例子,展示了如何创建带有侧边栏的导航栏。任何人都可以修改代码,以便顶部导航是顶部固定的,侧边栏是固定/静态的,只有主页内容滚动?我可以通过将class="fixed-top" 分配给nav 来使导航成为顶部固定的导航,但我不知道如何使侧边栏固定,以便它保持在同一个位置而不是向上滚动主页面内容。将class="sticky-top" 应用到侧边栏似乎不起作用。

<nav class="navbar navbar-expand-md navbar-dark bg-primary fixed-top">
    ..
</nav>
<div class="row">
    <div id="sidebar-container" class="sidebar-expanded d-none d-md-block">
        <ul class="list-group sticky-top">
            <li>Menu item..</li>
            <li>Menu item..</li>
        </ul>
    </div>
    <div class="col">
        <!-- MAIN -->
    </div>
</div>

https://www.codeply.com/go/LFd2SEMECH

【问题讨论】:

【参考方案1】:

sticky-top 正在工作,但它似乎没有工作,原因有两个......

    主内容区内容不足,无法滚动 它位于top:0,所以它隐藏在固定导航栏后面

添加 CSS 以偏移侧边栏的顶部(与固定导航栏的高度相同)。

.sticky-offset 
    top: 56px;


<ul class="list-group sticky-top sticky-offset">..(sidebar)..</div>

然后,在主区域添加足够的内容(或高度),以便需要滚动...

工作演示: https://www.codeply.com/go/7XYosZ7VH5

<nav class="navbar navbar-expand-md navbar-dark bg-primary fixed-top">
    ..
</nav>
<div class="row">
    <div id="sidebar-container" class="sidebar-expanded col-2 d-none d-md-block">
        <ul class="list-group sticky-top sticky-offset">
            <li>Menu item..</li>
            <li>Menu item..</li>
        </ul>
    </div>
    <div class="col">
        <!-- MAIN -->
    </div>
</div>

【讨论】:

非常感谢。效果很好。我在自己的示例中添加了一堆内容,但是我在错误的元素上添加了粘性偏移。我在 sidebar-container 元素上找到了它,并且按照您的建议缺少粘性偏移量。 离题了,但是有没有一个术语可以同时指代顶栏和侧栏?【参考方案2】:

有一个相对较新的 CSS 位置属性,称为 sticky

position: sticky;
top: 4em;

看看它是如何工作的,当你滚动到父元素的末尾时会发生什么。将高度留在auto。参考——https://developer.mozilla.org/en-US/docs/Web/CSS/position

【讨论】:

以上是关于在bootstrap中 怎么使得导航栏固定在顶部的主要内容,如果未能解决你的问题,请参考以下文章

Bootstrap 3 固定顶部导航栏显示水平滚动

在 Twitter Bootstrap 3 中为大屏幕居中固定顶部导航栏

css 如何增加Bootstrap中导航栏的高度? Twitter bootstrap navbar固定顶部重叠网站?

关于 Bootstrap 4 - 导航栏顶部放置

怎么将导航栏始终固定在窗口顶部?

如何创建滚动后固定在顶部的粘性导航栏