整理关于Bootstrap导航的慕课笔记


Posted in Javascript onMarch 29, 2017

整理自慕课笔记

基础样式

导航对于一位前端人员来说并不陌生。可以说导航是一个网站重要的元素组件之一,可以便于用户查找网站所提供的各项功能服务。导航的制作方法也是千奇百怪,五花八门。在这一节中将向大家介绍如何使用Bootstrap框架制作各式各样的导航。
Bootstrap框架中制作导航条主要通过“.nav”样式。默认的“.nav”样式不提供默认的导航样式,必须附加另外一个样式才会有效,比如“nav-tabs”、“nav-pills”之类

<ul class="nav nav-tabs">
  <li><a href="##">Home</a></li>
  <li><a href="##">CSS3</a></li>
  <li><a href="##">Sass</a></li>
  <li><a href="##">jQuery</a></li>
  <li><a href="##">Responsive</a></li>
</ul>

标签形tab导航

标签形导航,也称为选项卡导航。特别是在很多内容分块显示的时,使用这种选项卡来分组十分适合。
标签形导航是通过“nav-tabs”样式来实现。在制作标签形导航时需要在原导航“nav”上追加此类名,如:

<ul class="nav nav-tabs">
   <li><a href="##">Home</a></li>
   <li><a href="##">CSS3</a></li>
   <li><a href="##">Sass</a></li>
   <li><a href="##">jQuery</a></li>
   <li><a href="##">Responsive</a></li>
</ul>

一般情况之下,选项卡教会有一个当前选中项。其实在Bootstrap框架也相应提供了。假设我们想让“Home”项为当前选中项,只需要在其标签上添加类名“class=”active””即可:

<ul class="nav nav-tabs">
   <li class="active"><a href="##">Home</a></li>
   …
</ul>

除了当前项之外,有的选项卡还带有禁用状态,实现这样的效果,只需要在标签项上添加“class=”disabled””即可:

<ul class="nav nav-tabs">
   <li class="active"><a href="##">Home</a></li>
   …
   <li class="disabled"><a href="##">Responsive</a></li>
</ul>

注意:我们看到的选项卡效果,点击菜单项就可以切换内容,如果要实现这样的效果需要配合js插件,这部分将在后面的教程中会介绍。

胶囊形(pills)导航

胶囊形(pills)导航听起来有点别扭,因为其外形看起来有点像胶囊形状。但其更像我们平时看到的大众形导航。当前项高亮显示,并带有圆角效果。其实现方法和“nav-tabs”类似,同样的结构,只需要把类名“nav-tabs”换成“nav-pills”即可

<ul class="nav nav-pills">
   <li class="active"><a href="##">Home</a></li>
   <li><a href="##">CSS3</a></li>
   <li><a href="##">Sass</a></li>
   <li><a href="##">jQuery</a></li>
   <li class="disabled"><a href="##">Responsive</a></li>
</ul>

垂直堆叠的导航

在实际运用当中,除了水平导航之外,还有垂直导航,就类似前面介绍的垂直排列按钮一样。制作垂直堆叠导航只需要在“nav-pills”的基础上添加一个“nav-stacked”类名即可

<ul class="nav nav-pills nav-stacked">
   <li class="active"><a href="##">Home</a></li>
   <li><a href="##">CSS3</a></li>
   <li><a href="##">Sass</a></li>
   <li><a href="##">jQuery</a></li>
   <li class="disabled"><a href="##">Responsive</a></li>
</ul>

垂直堆叠导航与胶囊形导航相比,主要是让导航项不浮动,让其垂直排列,然后给相邻导航项留有一定的间距。大家是否还记得,在下拉菜单一节中,下拉菜单组与组之间有一个分隔线。其实在垂直堆叠导航也具有这样的效果,只需要添加在导航项之间添加<li class=”nav-divider”></li>即可:

<ul class="nav nav-pills nav-stacked">
  <li class="active"><a href="##">Home</a></li>
  <li><a href="##">CSS3</a></li>
  <li><a href="##">Sass</a></li>
  <li><a href="##">jQuery</a></li>
  <li class="nav-divider"></li>
  <li class="disabled"><a href="##">Responsive</a></li>
</ul>

或许你会问,如果我在”nav-tabs”上添加“nav-stacked”是不是也能实现垂直的标签选项导航呢?答案是:在bootstrap V2.x版本可以,但在Bootstrap V3.x版本将这个效果取消了,可能作者觉得垂直选择项并不太常见,也不美观吧。

自适应导航

使用

自适应导航指的是导航占据容器全部宽度,而且菜单项可以像表格的单元格一样自适应宽度。自适应导航和前面使用“btn-group-justified”制作的自适应按钮组是一样的。只不过在制作自适应导航时更换了另一个类名“nav-justified”。当然他需要和“nav-tabs”或者“nav-pills”配合在一起使用。如:

<ul class="nav nav-tabs nav-justified">
   <li class="active"><a href="##">Home</a></li>
   <li><a href="##">CSS3</a></li>
   <li><a href="##">Sass</a></li>
   <li><a href="##">jQuery</a></li>
   <li><a href="##">Responsive</a></li>
</ul>

实现原理

实现原理并不难,列表<ul>上设置宽度为“100%”,然后每个菜单项<li>设置了“display:table-cell”,让列表项以模拟表格单元格的形式显示

导航加下拉菜单(二级导航)

前面介绍的都是使用Bootstrap框架制作一级导航,但很多时候,在Web页面中是离不开二级导航的效果。那么在Bootstrap框架中制作二级导航就更容易了。只需要将li当作父容器,使用类名“dropdown”,同时在li中嵌套另一个列表ul,使用前面介绍下拉菜单的方法就可以:

<ul class="nav nav-pills">
   <li class="active"><a href="##">首页</a></li>
   <li class="dropdown">
    <a href="##" class="dropdown-toggle" data-toggle="dropdown">教程<span class="caret"></span></a>
    <ul class="dropdown-menu">
      <li><a href="##">CSS3</a></li>
      …
    </ul>
   </li>
   <li><a href="##">关于我们</a></li>
</ul>

面包屑式导航

面包屑(Breadcrumb)一般用于导航,主要是起的作用是告诉用户现在所处页面的位置(当前位置)。在Bootstrap框架中面包屑也是一个独立模块组件

使用方法

使用方式就很简单,为ol加入breadcrumb类:

<ol class="breadcrumb">
 <li><a href="#">首页</a></li>
 <li><a href="#">我的书</a></li>
 <li class="active">《图解CSS3》</li>
</ol>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javaScript实现浮点数转十六进制字符
Oct 29 Javascript
js 处理数组重复元素示例代码
Dec 27 Javascript
AngularJS基础学习笔记之指令
May 10 Javascript
js验证身份证号有效性并提示对应信息
Oct 19 Javascript
谈谈js中的prototype及prototype属性解释和常用方法
Nov 25 Javascript
jQuery ready()和onload的加载耗时分析
Sep 08 Javascript
jQuery.datatables.js插件用法及api实例详解
Oct 28 Javascript
微信公众平台开发教程(五)详解自定义菜单
Dec 02 Javascript
vue使用stompjs实现mqtt消息推送通知
Jun 22 Javascript
使用Webpack提高Vue.js应用的方式汇总(四种)
Jul 10 Javascript
微信小程序动画(Animation)的实现及执行步骤
Oct 28 Javascript
详解axios中封装使用、拦截特定请求、判断所有请求加载完毕)
Apr 09 Javascript
javascript 中Cookie读、写与删除操作
Mar 29 #Javascript
移动端利用H5实现压缩图片上传功能
Mar 29 #Javascript
浅析JS中的 map, filter, some, every, forEach, for in, for of 用法总结
Mar 29 #Javascript
Vue.js展示AJAX数据简单示例讲解
Mar 29 #Javascript
JS实现侧边栏鼠标经过弹出框+缓冲效果
Mar 29 #Javascript
Mongoose经常返回e11000 error的原因分析
Mar 29 #Javascript
js实现一个简单的数字时钟效果
Mar 29 #Javascript
You might like
php cookie的操作实现代码(登录)
2010/12/29 PHP
php数组去重实例及分析
2013/11/26 PHP
php DES加密算法实例分析
2019/09/18 PHP
Google韩国首页图标动画效果
2007/08/26 Javascript
javascript 一个函数对同一元素的多个事件响应
2009/07/25 Javascript
JavaScript中的prototype.bind()方法介绍
2014/04/04 Javascript
jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法
2015/03/25 Javascript
jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法
2015/08/07 Javascript
jQuery+jsp实现省市县三级联动效果(附源码)
2015/12/03 Javascript
js+html5操作sqlite数据库的方法
2016/02/02 Javascript
javascript html5移动端轻松实现文件上传
2020/03/27 Javascript
JS弹出窗口插件zDialog简单用法示例
2016/06/12 Javascript
javascript运算符语法全面概述
2016/07/14 Javascript
老生常谈angularjs中的$state.go
2017/04/24 Javascript
React-router中结合webpack实现按需加载实例
2017/05/25 Javascript
超级简易的JS计算器实例讲解(实现加减乘除)
2017/08/08 Javascript
JavaScript代码调试方法实例小结
2019/01/05 Javascript
微信小程序 slot踩坑的解决
2019/04/01 Javascript
Nuxt的动态路由和参数校验操作
2020/11/09 Javascript
Python Pandas 转换unix时间戳方式
2019/12/07 Python
python获取响应某个字段值的3种实现方法
2020/04/30 Python
Python如何用wx模块创建文本编辑器
2020/06/07 Python
如何教少儿学习Python编程
2020/07/10 Python
利用Python批量识别电子账单数据的方法
2021/02/08 Python
泰国办公用品购物网站:OfficeMate
2018/02/04 全球购物
蔻驰英国官网:COACH英国
2020/07/19 全球购物
某IT外企面试题-二分法求方程!看看大家的C++功底
2015/07/04 面试题
青年文明号事迹材料
2014/01/18 职场文书
保安队长职务说明书
2014/02/23 职场文书
安全生产工作汇报材料
2014/10/28 职场文书
初中生散播谣言检讨书
2014/11/17 职场文书
行政处罚告知书
2015/07/01 职场文书
2016年社区党支部公开承诺书
2016/03/25 职场文书
22句经典语录:送给优柔寡断和胡思乱想的朋友们
2019/12/13 职场文书
vue-cli4.5.x快速搭建项目
2021/05/30 Vue.js
关于CSS浮动与取消浮动的问题
2021/06/28 HTML / CSS