在Bootstrap框架中的下拉菜单组件是一个独立的组件,根据不一样的版本,它对应的文件:css
☑ LESS版本:对应的源码文件为 dropdowns.lessjquery
☑ Sass版本:对应的源码文件为 _dropdowns.scssbootstrap
☑ 编译后的Bootstrap版本:查看bootstrap.css文件第3004行~第3130行浏览器
在使用Bootstrap框架的下拉菜单时,必须调用Bootstrap框架提供的bootstrap.js文件。固然,若是你使用的是未编译版本,在js文件夹下你能找到一个名为“dropdown.js”的文件。你也能够调用这个js文件。不过在咱们的教程中,咱们统一调用压缩好的“bootstrap.min.js”文件框架
由于Bootstrap的组件交互效果都是依赖于jQuery库写的插件,因此在使用bootstrap.min.js以前必定要先加载jquery.min.js才会生效果less
使用方法:编辑器
在使用Bootstrap框架中的下拉菜单组件时,其结构运用的正确与否很是的重要,若是结构和类名未使用正确,直接影响组件是否能正常运用。咱们来简单的看看:ide
一、使用一个名为“dropdown”的容器包裹了整个下拉菜单元素,示例中为:工具
<div class="dropdown"></div>
网站
二、使用了一个<button>按钮作为父菜单,而且定义类名“dropdown-toggle”和自定义“data-toggle”属性,且值必须和最外容器类名一致,此示例为:
data-toggle="dropdown"
三、下拉菜单项使用一个ul列表,而且定义一个类名为“dropdown-menu”,此示例为:
<ul class="dropdown-menu">
<div class="dropdown"> <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown"> 下拉菜单 <span class="caret"></span> </button> <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1"> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">下拉菜单项</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">下拉菜单项</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">下拉菜单项</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">下拉菜单项</a></li> </ul> </div>
在Bootstrap框架中的下拉菜单还提供了下拉分隔线,假设下拉菜单有两个组,那么组与组之间能够经过添加一个空的<li>,而且给这个<li>添加类名“divider”来实现添加下拉分隔线的功能
<li role="presentation" class="divider"></li>
<li role="presentation" class="dropdown-header">第一部分菜单头部</li>
Bootstrap框架中下拉菜单默认是左对齐,若是你想让下拉菜单相对于父容器右对齐时,能够在“dropdown-menu”上添加一个“pull-right”或者“dropdown-menu-right”类名
<ul class="dropdown-menu pull-right" role="menu" aria-labelledby="dropdownMenu1">
下拉菜单项的默认的状态(不用设置)有悬浮状态(:hover)和焦点状态(:focus)
下拉菜单项除了上面两种状态,还有当前状态(.active)和禁用状态(.disabled)。这两种状态使用方法只须要在对应的菜单项上添加对应的类名
<li role="presentation" class="active"><a role="menuitem" tabindex="-1" href="#">下拉菜单项</a></li> <li role="presentation" class="disabled"><a role="menuitem" tabindex="-1" href="#">下拉菜单项</a></li>
<div class="btn-group"> <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-step-backward"></span></button> <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-fast-backward"></span></button> <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-backward"></span></button> <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-play"></span></button> <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-pause"></span></button> <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-stop"></span></button> <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-forward "></span></button> <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-fast-forward"></span></button> <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-step-forward"></span></button> </div>
将按钮组分组排列在一块儿,好比说复制、剪切和粘贴一组;左对齐、中间对齐、右对齐和两端对齐一组
须要将按钮组“btn-group”按组放在一个大的容器“btn-toolbar”中
<div class="btn-toolbar"> <div class="btn-group"> <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-align-left"></span></button> <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-align-center"></span></button> <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-align-right"></span></button> <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-align-justify"></span></button> </div> <div class="btn-group"> <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-indent-left"></span></button> <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-indent-right"></span></button> </div> <div class="btn-group"> <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-font"></span></button> <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-bold"></span></button> <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-italic"></span></button> </div> <div class="btn-group"> <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-text-height"></span></button> <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-text-width"></span></button> </div> </div>
咱们常把下拉菜单和普通的按钮组排列在一块儿,实现相似于导航菜单的效果
<div class="btn-group"> <button class="btn btn-default" type="button">首页</button> <button class="btn btn-default" type="button">产品展现</button> <button class="btn btn-default" type="button">案例分析</button> <button class="btn btn-default" type="button">联系咱们</button> <div class="btn-group"> <button class="btn btn-default dropdown-toggle" data-toggle="dropdown" type="button">关于咱们<span class="caret"></span></button> <ul class="dropdown-menu"> <li><a href="##">公司简介</a></li> <li><a href="##">企业文化</a></li> <li><a href="##">组织结构</a></li> <li><a href="##">客服服务</a></li> </ul> </div> </div>
垂直显示的效果。在Bootstrap框架中也提供了这样的风格。咱们只须要把水平分组的“btn-group”类名换成“btn-group-vertical”便可
<div class="btn-group-vertical">
等分按钮的效果在移动端上特别的实用。整个按钮组宽度是容器的100%,而按钮组里面的每一个按钮平分整个容器宽度。例如,若是你按钮组里面有五个按钮,那么每一个按钮是20%的宽度,若是有四个按钮,那么每一个按钮是25%宽度,以此类推。
等分按钮也常被称为是自适应分组按钮,其实现方法也很是的简单,只须要在按钮组“btn-group”上追加一个“btn-group-justified”类名
<div class="btn-wrap"> <div class="btn-group btn-group-justified"> <a class="btn btn-default" href="#">首页</a> <a class="btn btn-default" href="#">产品展现</a> <a class="btn btn-default" href="#">案例分析</a> <a class="btn btn-default" href="#">联系咱们</a> </div> </div>
在制做等分按钮组时,请尽可能使用<a>标签元素来制做按钮,由于使用<button>标签元素时,使用display:table在部分浏览器下支持并不友好
按钮的向下三角形,咱们是经过在<button>标签中添加一个“<span>”标签元素,而且命名为“caret”:
这个三角形彻底是经过CSS代码来实现的:
.caret { display: inline-block; width: 0; height: 0; margin-left: 2px; vertical-align: middle; border-top: 4px solid; border-right: 4px solid transparent; border-left: 4px solid transparent; }
三角方向须要朝上显示,实现方法:须要在“.btn-group”类上追加“dropup”类名(这也是作向上弹起下拉菜单要用的类名
.dropup .caret, .navbar-fixed-bottom .dropdown .caret { content: ""; border-top: 0; border-bottom: 4px solid; }
向上三角与向下三角的区别:其实就是改变了一个border-bottom的值
在Bootstrap框架将导航独立出来成为一个导航组件,根据不一样的版本,能够找到对应的源码:
☑ LESS版本:对应的源文件是navs.less
☑ Sass版本:对应的源文件是_navs.scss
☑ 编译后版本:对应源码是bootstrap.css文件第3450行~第3641行
导航基础样式
Bootstrap框架中制做导航条主要经过“.nav”样式。默认的“.nav”样式不提供默认的导航样式,必须附加另一个样式才会有效,好比“nav-tabs”、“nav-pills”之类。好比右侧代码编辑器中就有一个tab导航条的例子,他的实现方法就是为ul标签加入.nav和nav-tabs两个类样式
<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> <br /> <ul class="nav nav-tabs"> <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> <br /> <ul class="nav nav-tabs"> <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-tabs”换成“nav-pills”便可
制做垂直堆叠导航只须要在“nav-pills”的基础上添加一个“nav-stacked”类名便可
自适应导航指的是导航占据容器所有宽度,并且菜单项能够像表格的单元格同样自适应宽度。自适应导航和前面使用“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>
只须要将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> <li><a href="##">Sass</a></li> <li><a href="##">jQuery</a></li> <li><a href="##">Responsive</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>
导航条(navbar)和上一节介绍的导航(nav),就相差一个字,多了一个“条”字。其实在Bootstrap框架中他们仍是明显的区别。在导航条(navbar)中有一个背景色、并且导航条能够是纯连接(相似导航),也能够是表单,还有就是表单和导航一块儿结合等多种形式。在这一节中将一块儿探讨Bootstrap框架中导航条的使用。
导航条和导航同样,在Bootstrap框架中是一个独立组件,因此你也能够根据本身的需求使用不一样的版本:
<div class="navbar navbar-default" role="navigation"> <div class="navbar-header"> <a href="##" class="navbar-brand">慕课网</a> </div> <ul class="nav navbar-nav"> <li class="active"><a href="##">网站首页</a></li> <li class="dropdown"> <a href="##" data-toggle="dropdown" class="dropdown-toggle">系列教程<span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="##">CSS3</a></li> <li><a href="##">JavaScript</a></li> <li class="disabled"><a href="##">PHP</a></li> </ul> </li> <li><a href="##">名师介绍</a></li> <li><a href="##">成功案例</a></li> <li><a href="##">关于咱们</a></li> </ul> <form action="##" class="navbar-form navbar-left" rol="search"> <div class="form-group"> <input type="text" class="form-control" placeholder="请输入关键词" /> </div> <button type="submit" class="btn btn-default">搜索</button> </form> </div>
Bootstrap框架的导航条中除了使用navbar-brand中的a元素和navbar-nav的ul和navbar-form以外,还可使用其余元素。框架提供了三种其余样式:
一、导航条中的按钮navbar-btn
二、导航条中的文本navbar-text
三、导航条中的普通连接navbar-link
但这三种样式在框架中使用时受到必定的限制,须要和navbar-brand、navbar-nav配合起来使用。并且对数量也有必定的限制,通常状况在使用一到两个不会有问题,超过两个就会有问题
<div class="navbar navbar-default" role="navigation"> <div class="navbar-header"> <a href="##" class="navbar-brand">慕课网</a> </div> <div class="nav navbar-nav"> <a href="##" class="navbar-text">Navbar Text</a> <a href="##" class="navbar-text">Navbar Text</a> <a href="##" class="navbar-text">Navbar Text</a> </div> </div>
两种固定导航条的方式:
☑ .navbar-fixed-top:导航条固定在浏览器窗口顶部
☑ .navbar-fixed-bottom:导航条固定在浏览器窗口底部
实现的导航条仅能适配于大屏幕的浏览器,但当浏览器屏幕变小的时候,就不适合了。
使用方法:
一、保证在窄屏时须要折叠的内容必须包裹在带一个div内,而且为这个div加入collapse、navbar-collapse两个类名。最后为这个div添加一个class类名或者id名。
二、保证在窄屏时要显示的图标样式(固定写法)
反色导航条实际上是Bootstrap框架为你们提供的第二种风格的导航条,与默认的导航条相比,使用方法并没有区别,只是将navbar-deafult类名换成navbar-inverse
<div class="navbar navbar-default" role="navigation"> <div class="navbar-header"> <!-- .navbar-toggle样式用于toggle收缩的内容,即nav-collapse collapse样式所在元素 --> <button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".navbar-responsive-collapse"> <span class="sr-only">Toggle Navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <!-- 确保不管是宽屏仍是窄屏,navbar-brand都显示 --> <a href="##" class="navbar-brand">慕课网</a> </div> <!-- 屏幕宽度小于768px时,div.navbar-responsive-collapse容器里的内容都会隐藏,显示icon-bar图标,当点击icon-bar图标时,再展开。屏幕大于768px时,默认显示。 --> <div class="collapse navbar-collapse navbar-responsive-collapse"> <ul class="nav navbar-nav"> <li class="active"><a href="##">网站首页</a></li> <li><a href="##">系列教程</a></li> <li><a href="##">名师介绍</a></li> <li><a href="##">成功案例</a></li> <li><a href="##">关于咱们</a></li> </ul> </div> </div>
在Bootstrap框架中提供了两种分页导航:
☑ 带页码的分页导航
☑ 带翻页的分页导航
带页码的分页导航
带页码的分页导航,多是最多见的一种分页导航,特别是在列表页内容超多的时候,会给用户提供分页的导航方式。在Bootstrap框架为开发者提供不一样的版本:
☑ LESS版本:对应的源文件pagination.less
☑ Sass版本:对应的源文件_pagination.scss
☑ 编译后版本:对应bootstrap.css文件第4130行~第4222行
使用方法:
平时不少同窗喜欢用div>a
和div>span
结构来制做带页码的分页导航。不过,在Bootstrap框架中使用的是ul>li>a
这样的结构,在ul标签上加入pagination方法
要禁用当前状态和禁用状态不能点击,咱们还要依靠js来实现,或者将这两状态下的a标签换成span标签。
大小设置:
在Bootstrap框架中,也能够经过几个不一样的状况来设置其大小。相似于按钮同样:
一、经过“pagination-lg”让分页导航变大;
二、经过“pagination-sm”让分页导航变小、
<ul class="pagination pagination-lg"> <li><a href="#">«第一页</a></li> <li><a href="#">11</a></li> <li><a href="#">12</a></li> <li class="active"><a href="#">13</a></li> <li><a href="#">14</a></li> <li><a href="#">15</a></li> <li class="disabled"><a href="#">最后一页»</a></li> </ul> <ul class="pagination pagination"> <li><a href="#">«第一页</a></li> <li><a href="#">11</a></li> <li><a href="#">12</a></li> <li class="active"><a href="#">13</a></li> <li><a href="#">14</a></li> <li><a href="#">15</a></li> <li class="disabled"><a href="#">最后一页»</a></li> </ul> <ul class="pagination pagination-sm"> <li><a href="#">«第一页</a></li> <li><a href="#">11</a></li> <li><a href="#">12</a></li> <li class="active"><a href="#">13</a></li> <li><a href="#">14</a></li> <li><a href="#">15</a></li> <li class="disabled"><a href="#">最后一页»</a></li> </ul>
<ul class="pager"> <li><a href="#">«上一页</a></li> <li><a href="#">下一页»</a></li> </ul>
徽章效果和前面介绍的标签效果是极其的类似。也是用来作一些提示信息使用。常出现的是一些系统发出的信息,好比你登陆你的twitter后,若是你信息没有看,系统会告诉你有多少信息未读
<a href="#">Inbox <span class="badge">42</span></a> <!--navbar-default导航条勋章--> <div class="navbar navbar-default" role="navigation"> <div class="navbar-header"> <a href="##" class="navbar-brand">慕课网</a> </div> <ul class="nav navbar-nav"> <li class="active"><a href="##">网站首页</a></li> <li><a href="##">系列教程</a></li> <li><a href="##">名师介绍</a></li> <li><a href="##">成功案例<span class="badge">23</span></a></li> <li><a href="##">关于咱们</a></li> </ul> </div> <!--nav-pills导航条勋章--> <ul class="nav nav-pills"> <li class="active"><a href="#">Home <span class="badge">42</span></a></li> <li><a href="#">Profile</a></li> <li><a href="#">Messages <span class="badge">3</span></a></li> </ul> <br /> <ul class="nav nav-pills nav-stacked" style="max-width: 260px;"> <li class="active"> <a href="#"> <span class="badge pull-right">42</span> Home </a> </li> <li><a href="#">Profile</a></li> <li> <a href="#"> <span class="badge pull-right">3</span> Messages </a> </li> </ul> <br /> <!--按钮勋章--> <button class="btn btn-primary" type="button"> Messages <span class="badge">4</span> </button>
<h3>Example heading <span class="label label-default">New</span></h3> <!--代码--> <span class="label label-default">默认标签</span> <span class="label label-primary">主要标签</span> <span class="label label-success">成功标签</span> <span class="label label-info">信息标签</span> <span class="label label-warning">警告标签</span> <span class="label label-danger">错误标签</span>