在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 插件来得到您自己的版本。
添加 .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中 怎么使得导航栏固定在顶部的主要内容,如果未能解决你的问题,请参考以下文章
在 Twitter Bootstrap 3 中为大屏幕居中固定顶部导航栏