导航栏如此常见,以至于 Bootstrap 内建了导航栏组件
Bootstrap 4 提供了 .navbar 、 .navbar-nav 、nav-item 、 .nav-link css 类用于创建一个导航栏
<nav class="navbar navbar-expand-sm bg-light">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="#">首页</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Python</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">php</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Perl</a>
</li>
</ul>
</nav>
可以在 .navbar 元素上添加 .navbar-expand-xl|lg|md|sm CSS 类来创建响应式的导航栏 (大屏幕水平铺开,小屏幕垂直堆叠)
<nav class="navbar navbar-expand-sm bg-light">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="#">首页</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Python</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">PHP</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Perl</a>
</li>
</ul>
</nav>
在 .navbar 元素上删除 .navbar-expand-* 可以创建垂直导航栏
<nav class="navbar bg-light">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="#">首页</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Python</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">PHP</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Perl</a>
</li>
</ul>
</nav>
导航栏可以设置不同的背景色
.bg-primary
.bg-success
.bg-info
.bg-warning
.bg-danger
.bg-secondary
.bg-dark
.bg-light
对于暗色背景需要设置文本颜色为浅色的,对于浅色背景需要设置文本颜色为深色的
<!-- 灰底黑字 -->
<nav class="navbar navbar-expand-sm bg-light navbar-light">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="#">首页</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Python</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">PHP</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Perl</a>
</li>
</ul>
</nav>
<!-- 黑底白字 -->
<nav class="navbar navbar-expand-sm bg-dark navbar-dark">...</nav>
<!-- 蓝底白字 -->
<nav class="navbar navbar-expand-sm bg-primary navbar-dark">...</nav>
可以在 .nav-link 元素上添加 .active 高亮显示选中的选项
添加 .disabled 设置该链接是不可点击的
<nav class="navbar navbar-expand-sm bg-light">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link active" href="#">首页</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Python</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">PHP</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Perl</a>
</li>
</ul>
</nav>
可以添加 .navbar-brand CSS 类用于高亮显示品牌/Logo
<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
<a class="navbar-brand" href="#">Logo</a>
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link active" href="#">首页</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Python</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">PHP</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Perl</a>
</li>
</ul>
</nav>
如果使用图片,可以使用 .navbar-brand 设置图片自适应导航栏
<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
<a class="navbar-brand" href="#">
<img src="/static/icon/bootstrap_32x32.png" alt="Logo" style="width:32px;">
</a>
</nav>
通常,小屏幕上会折叠导航栏,用户通过点击来显示导航选项
要创建折叠导航栏,可以在按钮上添加 , 与box-sizing: border-box; font-weight: 700;">thetarget" CSS 类
然后在设置了 CSS 类的 div 上包裹导航内容(链接), div 元素上的 id 匹配按钮
<nav class="navbar navbar-expand-md bg-dark navbar-dark">
<!-- Brand -->
<a class="navbar-brand" href="#">导航栏</a>
<!-- Toggler/collapsibe Button -->
<button class="navbar-toggler" type="button" >="collapse" >="#collapsibleNavbar">
<span class="navbar-toggler-icon"></span>
</button>
<!-- Navbar links -->
<div class="collapse navbar-collapse" id="collapsibleNavbar">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link active" href="#">首页</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Python</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">PHP</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Perl</a>
</li>
</ul>
</div>
</nav>
可以在导航栏上添加下拉菜单
<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
<!-- Brand -->
<a class="navbar-brand" href="#">
<img src="/static/icon/bootstrap_32x32.png" alt="Logo" style="width:32px;">
</a>
<!-- Links -->
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="#">Python</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Perl</a>
</li>
<!-- Dropdown -->
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbardrop" >="dropdown">
Java
</a>
<div class="dropdown-menu">
<a class="dropdown-item" href="#">Servlet</a>
<a class="dropdown-item" href="#">JSP</a>
<a class="dropdown-item" href="#">Spring</a>
</div>
</li>
</ul>
</nav>
导航栏上可以添加表单,不过在 <form> 元素上添加 .form-inline 来排版输入框与按钮
<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
<form class="form-inline">
<input class="form-control" type="text" placeholder="请输入要搜索的内容">
<button class="btn btn-success" type="submit">搜索</button>
</form>
</nav>
可以使用 .navbar-text CSS 类设置导航栏上非链接文本,可以保证水平对齐,颜色与内边距一样
<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="#">首页</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Python</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">PHP</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Perl</a>
</li>
</ul>
<span class="navbar-text">导航栏非链接文本</span>
</nav>
在 .navbar 元素上添加 .fixed-top CSS 类用于设置导航栏固定在页面顶部
<nav class="navbar navbar-expand-sm bg-dark navbar-dark fixed-top">
...
</nav>
在 .navbar 元素上添加 .fixed-bottom CSS 类用于设置导航栏固定在页面底部
<nav class="navbar navbar-expand-sm bg-dark navbar-dark fixed-bottom">
...
</nav>