Bootstrap 2 导航条
Bootstrap 内置了导航条模块,本节我们将会学习如何使用 Bootstrap 创建导航条
Bootstrap 2 导航条
Bootstrap .navbar
CSS 类用于创建一个导航条
可以使用 .navbar-fixed-top
CSS 类将导航条固定在头部
<div class="navbar navbar-fixed-top"> <div class="navbar-inner"> <div class="container"> <!--navigation does here--> </div> </div> </div>
添加导航集合
然后我们就可以使用 .nav
CSS 类添加一个导航集合
.active
CSS 类用于将一个导航项设置为当前项
<div class="navbar navbar-fixed-top"> <div class="navbar-inner"> <div class="container"> <ul class="nav"> <li class="active"> <a href="#">简单教程</a> </li> <li><a href="#">HTML5</a></li> <li><a href="#">CSS3</a></li> <li><a href="#">Bootstrap</a></li> </ul> </div> </div> </div>
运行后效果图如下
创建下拉菜单
可以将一个导航菜单项设置为下拉菜单,就像创建下拉菜单一样
<div class="navbar navbar-fixed-top"> <div class="navbar-inner"> <div class="container"> <ul class="nav"> <li class="active"> <a href="#">简单教程</a> </li> <li><a href="#">HTML5</a></li> <li><a href="#">CSS3</a></li> <li><a href="#">jQuery</a></li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown"> Bootstrap <b class="caret"></b> </a> <ul class="dropdown-menu"> <li><a href="#">Bootstrap 2 </a></li> <li><a href="#">Bootstrap 3</a></li> <li><a href="#">Bootstrap 4</a></li> </ul> </li> </ul> </div> </div> </div>
因为 Bootstrap 下拉菜单需要用到 JavaScript,所以需要在 HTML 页面中插入下面几行代码
<script src="/static/lib/bootstrap/2.3.2/docs/assets/js/jquery.js"></script> <script src="/static/lib/bootstrap/2.3.2/docs/assets/js/bootstrap.min.js"></script> <script>$(document).ready(function () {$('.dropdown-toggle').dropdown();});</script>
运行后效果图如下
添加搜索表单
如果要向导航条中插入一个搜索表单,只需在包含下拉菜单列表的 <ul> 后插入下面的代码
.pull-left
是靠左对齐搜索表单,如果您想要靠右对齐,请使用 ".pull-right"
<form class="navbar-search pull-left"> <input type="text" class="search-query" placeholder="搜素"> </form>
运行后效果图如下
插入交互按钮
如果想在导航条右部中插入交互按钮,比如 Google Plus、Facebook Like 和 Tweet 按钮,可以在搜索表单的后边插入下面的代码
<ul class="nav pull-right"> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown"> Social <b class="caret"></b> </a> <ul class="dropdown-menu"> <li class="socials"><!-- 将这个标签放置在要渲染的+ 1按钮的位置 --> <g:plusone annotation="inline" width="150"></g:plusone> </li> <li class="socials"><div class="fb-like" data-send="false" data-width="150" data-show-faces="true"></div></li> <li class="socials"><a href="https://twitter.com/share" class="twitter-share-button">Tweet</a> <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script> </li> </ul> </li> </ul>
CSS
然后添加以下样式 .socials
.socials
不是 bootstrap.css 的一部分,主要用于让所有的交互按钮都居中对齐
.socials {padding: 10px;}
JavaScript
最后需要插入两块代码: 一个用于 Facebook 按钮,另一个用于 Google Plus
这些是由 Facebook 和 Google 提供的用于动态插入按钮到您的页面中
所以,在 body 的开始标签后面,插入下面代码,这个是用于 Facebook
<div id="fb-root"></div> <script>(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));</script>
然后在 body 的结束标签前面,插入下面代码,这个是用于 Google Plus
<script> (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })(); </script>
最终代码如下
<!DOCTYPE htm> <meta charset="utf-8"> <link href="https://cdn.bootcss.com/bootstrap/2.3.2/css/bootstrap.min.css" rel="stylesheet"> <style>.socials { padding: 10px;}</style> <div id="fb-root"></div> <script>(function(d, s, id) {var js, fjs = d.getElementsByTagName(s)[0];if (d.getElementById(id)) return;js = d.createElement(s); js.id = id;js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1";fjs.parentNode.insertBefore(js, fjs);}(document, 'script', 'facebook-jssdk'));</script> <div class="navbar navbar-fixed-top"> <div class="navbar-inner"> <div class="container" style="width:auto"> <ul class="nav"> <li class="active"> <a href="#">简单教程</a> </li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown"> Bootstrap <b class="caret"></b> </a> <ul class="dropdown-menu"> <li><a href="#">Bootstrap 2 </a></li> <li><a href="#">Bootstrap 3</a></li> <li><a href="#">Bootstrap 4</a></li> </ul> </li> </ul> <form class="navbar-search pull-left"> <input type="text" class="search-query" placeholder="搜索"> </form> <ul class="nav pull-right"> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown"> Social <b class="caret"></b> </a> <ul class="dropdown-menu"> <li class="socials"><!-- 将这个标签放置在要渲染的+ 1按钮的位置 --> <g:plusone annotation="inline" width="150"></g:plusone> </li> <li class="socials"><div class="fb-like" data-send="false" data-width="150" data-show-faces="true"></div></li> <li class="socials"><a href="https://twitter.com/share" class="twitter-share-button">Tweet</a> <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script></li> </ul> </li> </ul> </div> </div> </div> <script src="/static/lib/bootstrap/2.3.2/docs/assets/js/jquery.js"></script> <script src="/static/lib/bootstrap/2.3.2/docs/assets/js/bootstrap.min.js"></script> <script>$(document).ready(function () {$('.dropdown-toggle').dropdown();});</script> <script> (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })(); </script>
需要在 body 的开始标签后添加一个 40px 的填充(padding) 并把它添加在核心 Bootstrap CSS 之后,可选的响应式 CSS 之前