bootstrap文件下面有三个文件夹,分别是css、fonts、js,其中fonts是字体文件夹,需要配合css文件夹一起使用
<!-- 获得更好的响应式支持 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- 获得bootstrap的css样式 -->
<link rel="stylesheet" href="../bootstrap-3.3.7-dist/css/bootstrap.css">
CSS样式
布局容器
Bootstrap 需要为页面内容和栅格系统包裹一个 .container 容器。我们提供了两个作此用处的类。注意:由于padding等属性的原因,这两种容器类不能互相嵌套。
.container两边会有留一定的padding。
<div class="container">
...
</div>
.container-fluid 默认使用当前页面的百分之百。
<div class="container-fluid">
...
</div>
排版
标题
只要导入了bootstrap中的css外联式样式表,标题就会因为样式表的存在发生改变,并且不需要使用布局容器就可以直接发生改变
HTML 中的所有标题标签,<h1> 到 <h6> 均可使用。
并且还会存在副标题,副标题是在主标题以下嵌套的标题,不能单独使用,并且根据标题的不同,副标题的大小也会随之发生改变
<h1>主标题<small>副标题</small></h1>
另外,还提供了 .h1 到 .h6 类,为的是给内联(inline)属性的文本赋予标题的样式。
页面主体
只要引入了bootstrap的css页面,body里面的内容就是页面主体
Bootstrap 将全局 font-size 设置为 14px,line-height 设置为 1.428倍(20px)。这些属性直接赋予 <body> 元素和所有段落元素。另外,<p> (段落)元素还被设置了等于 1/2 行高(即 10px)的底部外边距(margin)。
bootstrap直接将body和p全局设置字体为14px
中心内容(突出展示)
由于bootstrap直接将body和p全局设置字体为14px,所以要是想要字体加粗之类的内容,我们可以给标签加上lead类,这样就会显示为突出展示(字体变大,并且要是p标签添加lead类会进行换行)
排版
标签文本:要是想要bootstrap标签高亮,则可以使用mark标签嵌套,这样被mark标签嵌套的文本就会高亮显示
<!-- 标签文本 -->
<p>这是<mark>bootstrap</mark>的排版文本</p>
删除文本:要是想要显示被划掉的文本,则可以使用del标签嵌套,这样显示出来的文本就会被横线划掉
<!-- 删除文本 -->
<del>这是bootstrap的排版文本</del>
无用文本:和删除文本是一样的作用,但是是将del标签改成s标签嵌套
<!-- 无用文本 -->
<s>无用文本:这是bootstrap的排版文本</s>
带下划线文本:就是带下划线的文本,是将u标签将文本包裹住,则显示的就是带下划线的文本
<!-- 带下划线的文本 -->
<p><u>插入文本:我是被插入的文本</u></p>
插入文本:就是带下划线的文本,是将ins标签将文本包裹住,则显示的就是带下划线的文本
<!-- 插入文本 -->
<p><ins>插入文本:我是被插入的文本</ins></p>
小号文本:使用small标签嵌套的文本就是小号文本,文本内的字体大小会被显示成父容器的85%,并且可以使用.small类来代替small标签
<!-- 小号文本 -->
<p><small>小号文本:我是小号的文本</small></p>
<p class="small">小号文本:使用small类表示的小号文本</p>
着重文本:将文本字体加粗,使用strong标签将要加粗的文本包裹
<!-- 着重文本 -->
<p>着重文本:文本字体<strong>加粗</strong></p>
文本对齐:bootstrap里面自动是文本靠左对齐,我们可以使用添加类的方式来改变文本对齐的方式(text-left,text-center,text-right,text-justify,text-nowrap)
<!-- 文本的对齐方式 -->
<p>bootstrap里面自动是文本靠左对齐,我们可以使用添加类的方式来改变文本对齐的方式</p>
<!-- 添加文本靠左对齐,添加text-left类 -->
<p class="text-left">bootstrap</p>
<!-- 添加文本居中对齐,添加text-center类 -->
<p class="text-center">bootstrap</p>
<!-- 添加文本居右对齐,添加text-right类 -->
<p class="text-right">bootstrap</p>
<!-- 添加文本靠左对齐并且超出父容器的宽度时自动换行,添加text-justify类 -->
<p class="text-justify">bootstrap</p>
<!-- 添加文本靠左对齐并且超出父容器的宽度时不会换行,添加text-nowrap类 -->
<p class="text-nowrap">bootstrap</p>
改变大小写:通过添加类来改变大小写
大写: text-uppercase
小写: text-lowercase
首字母大写:text-capitalize
<!-- 改变大小写 -->
<!-- 大写: text-uppercase -->
<p class="text-uppercase">this is bootstrap</p>
<!-- 小写: text-lowercase -->
<p class="text-lowercase">this is bootstrap</p>
<!-- 首字母大写:text-capitalize -->
<p class="text-capitalize">this is bootstrap</p>
缩略语:当鼠标移动到特定的文字上时会显示出部分解释,使用abbr标签来进行嵌套要解释的文本,在abbr的title属性里显示要解释的文字
<!-- 缩略语 -->
<p>鼠标移动上去,显示<abbr title="这是缩略语">缩略语</abbr></p>
首字母缩略语:添加initialism类,就是让缩略语的font-size变小一点,没有什么很大的用途
<!-- 首字母缩略语 -->
<p>鼠标移动上去,显示<abbr title="这是缩略语" class="initialism">缩略语</abbr></p>
地址样式:最外面首先使用address标签嵌套,然后标签里面使用其他排版标签进行交互
<address>
<strong>Lvandjy</strong>
<p>湖北省武汉市洪山区珞狮南路</p>
<p>lvandjy011110@</p>
</address
引用:在文本的左侧出现一个小块,类似于借鉴的意思,使用blockquote标签嵌套住要引用的文本,推荐在blockquote标签里面添加一个p标签来进行引用,要是觉得颜色不好看,可以使用css中的background来调整一下颜色
<blockquote style="background: #ccc;">
<p>这是被引用的语句</p>
</blockquote>
列表:bootstrap里面的列表和html一样,并且可以添加两个类,一种是list-unstyled(无样式列表),一种是list-inline(内联列表),无样式列表会取消本列表的样式,但是本列表的子列表的样式不会取消,内联列表会取消样式,并且会形成一排
<!-- 列表 -->
<ul class="list-unstyled">
<li>html</li>
<li>bootstrap</li>
</ul>
<ul class="list-inline">
<li>html</li>
<li>bootstrap</li>
</ul>
栅格系统
栅格系统主要用于页面的布局,并且提供了一套响应式、移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列。它包含了易于使用的预定义类,还有强大的mixin 用于生成更具语义的布局。
栅格系统中流式布局:
存在行的概念:将页面中拆分成一行一行
存在列的概念:将页面中拆分的行最多分为12列,并且是等份列
使用栅格系统的注意事项:
1、栅格系统必须包含在容器布局中,.container .container-fluid
2、可以通过添加col-栅格系统设备-占份数(通常推荐栅格系统设备是sm),来进行布局,其中类最后的数字代表占几列,要是是1就是占一列,那样一行可以装下十二个,要是是4就是占四列,那样一行最多可以装三个,要是超出了12列,则会进行另起1行。
3、注意槽宽,槽宽就是padding,每一个槽两边都有15的padding
栅格参数:
栅格系统可以不等份:只要每行不超过12列,可以随意组织排列。
<div class="row">
<div class="col-sm-1" style="border: 1px solid green;">1份</div>
<div class="col-sm-3" style="border: 1px solid green;">3份</div>
<div class="col-sm-8" style="border: 1px solid green;">8份</div>
</div>
栅格系统的嵌套:可以将已经分布的列再次进行分割,并且再次分割成12份
<div class="row">
<div class="col-sm-4" style="border: 1px solid red">
<div class="col-sm-3" style="border: 1px solid blue">3</div>
<div class="col-sm-3" style="border: 1px solid blue">3</div>
<div class="col-sm-3" style="border: 1px solid blue">3</div>
<div class="col-sm-3" style="border: 1px solid blue">3</div>
</div>
<div class="col-sm-4" style="border: 1px solid red">
<div class="col-sm-3" style="border: 1px solid blue">3</div>
<div class="col-sm-3" style="border: 1px solid blue">3</div>
<div class="col-sm-3" style="border: 1px solid blue">3</div>
<div class="col-sm-3" style="border: 1px solid blue">3</div>
</div>
<div class="col-sm-4" style="border: 1px solid red">
<div class="col-sm-3" style="border: 1px solid blue">3</div>
<div class="col-sm-3" style="border: 1px solid blue">3</div>
<div class="col-sm-3" style="border: 1px solid blue">3</div>
<div class="col-sm-3" style="border: 1px solid blue">3</div>
</div>
</div>
列偏移:使用 .col-栅格系统设备 -offset-* 类可以将列向右侧偏移。这些类实际是通过使用 * 选择器为当前元素增加了左侧的边距(margin)。例如,.col-栅格系统设备-offset-4 类将 .col-栅格系统设备-4 元素向右侧偏移了4个列(column)的宽度。
<div class="row">
<!-- 通过添加col-sm-offset-2类,让它向右偏移两个列 -->
<div class="col-sm-8 col-sm-offset-2" style="border: 1px solid red">8份</div>
</div>
代码
就是一些关于代码的样式
内联代码:将部分内容进行类似于代码的样式,将要显示成代码的文字使用code标签包裹
<!-- 代码内联 -->
<div><code>System.out.println</code>("Hello Bootstrap")</div>
用户输入:就是将代码加上一个背景颜色,将要加入背景颜色的文字使用kbd标签包裹
<div>用户输入<kbd>abcd</kbd></div>
代码块:将代码有一个背景颜色,看起来像代码块,使用pre标签将整块代码进行包裹,注意尖括号的转义
<!-- 代码块 -->
<pre><p>Sample text here...</p></pre>
程序输出:将字体进行一点改变,差距不大,使用samp标签将代码块进行包裹
表格使用
bootstrap提供了专门的表格类,在表格的类名上添加table类,bootstrap就会自动渲染成bootstrap提供的样式
基本表格样式:只添加tbale类
没有添加tbale类
添加table类
<table class="table">
<thead>
<tr>
<td>编号</td>
<td>年龄</td>
<td>性别</td>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>12</td>
<td>男</td>
</tr>
<tr>
<td>2</td>
<td>13</td>
<td>女</td>
</tr>
</tbody>
</table>
条纹状表格:呈现成斑马线一样,一条灰色一条白色,但是要在table的基类上添加table-striped类
<!-- 条纹表格样式 -->
<table class="table table-striped">
带边框表格:让表格带边框,要在table的基类上添加table-bordered类
<!-- 带边框表格样式 -->
<table class="table table-bordered">
鼠标悬停(鼠标悬停变色):通过添加 .table-hover 类可以让 <tbody> 中的每一行对鼠标悬停状态作出响应。
<!-- 鼠标悬停表格样式 -->
<table class="table table-hover">
紧缩表格:通过添加 .table-condensed 类可以让表格更加紧凑,单元格中的内补(padding)均会减半。
状态列:在列/行上添加类,从而使每一列/行都可以有单独的样式(鼠标移动改变颜色)
Class | 描述 |
.active | 鼠标悬停在行或单元格上时所设置的颜色(灰色) |
.success | 标识成功或积极的动作(绿色) |
.info | 标识普通的提示信息或动作(蓝色) |
.warning | 标识警告或需要用户注意(黄色) |
.danger | 标识危险或潜在的带来负面影响的动作(红色) |
按钮
为a,button,input标签添加按钮类,便可以使用bootstrap样式,并且btn btn-default是所有按钮的基类,要是像加上其他的样式就要在有btn和btn-default的基础上添加其他的样式类
生成按钮的几种方式:a标签,input标签,button标签
<!-- 生成按钮的几种方式:a标签,input标签,button标签 -->
<a class="btn btn-default" href="#" role="button">Link</a>
<button class="btn btn-default" type="submit">Button</button>
<input class="btn btn-default" type="button" value="Input">
带有预定义样式的标签:以btn为基类,再在后面通过添加预定义样式类来为按钮添加颜色。预定义样式类:btn-xxx primary蓝色,succeed绿色,info天蓝色,警告黄色,危险红色,链接白色
<!-- 预定义样式类 primary蓝色,succeed绿色,info天蓝色,警告黄色,危险红色,链接白色-->
<button type="button" class="btn btn-default">(默认样式)Default</button>
<button type="button" class="btn btn-primary">(首选项)Primary</button>
<button type="button" class="btn btn-success">(成功)Success</button>
<button type="button" class="btn btn-info">(一般信息)Info</button>
<button type="button" class="btn btn-warning">(警告)Warning</button>
<button type="button" class="btn btn-danger">(危险)Danger</button>
<button type="button" class="btn btn-link">(链接)Link</button>
不同尺寸的按钮:使用 .btn-lg
(超大)
、.btn-sm
(小)
或 .btn-xs
(超小)
就可以获得不同尺寸的按钮,并且可以给按钮添加.btn-block
类可以将其拉伸至父元素100%的宽度,而且按钮也变为了块级(block)元素。
<p>
<button type="button" class="btn btn-primary btn-lg">(大按钮)Large button</button>
<button type="button" class="btn btn-default btn-lg">(大按钮)Large button</button>
</p>
<p>
<button type="button" class="btn btn-primary">(默认尺寸)Default button</button>
<button type="button" class="btn btn-default">(默认尺寸)Default button</button>
</p>
<p>
<button type="button" class="btn btn-primary btn-sm">(小按钮)Small button</button>
<button type="button" class="btn btn-default btn-sm">(小按钮)Small button</button>
</p>
<p>
<button type="button" class="btn btn-primary btn-xs">(超小尺寸)Extra small button</button>
<button type="button" class="btn btn-default btn-xs">(超小尺寸)Extra small button</button>
</p>
<p>
<button type="button" class="btn btn-block">块级元素按钮</button>
</p>
状态:
激活状态是按钮的底色更深、边框夜色更深、向内投射阴影,需要让其表现出同样外观的时候可以添加 .active
类
<!-- 激活状态,给按钮添加active类 -->
<p>
<button class="btn btn-primary active">激活按钮</button>
</p>
禁用状态是呈现出无法点击的效果,通过添加 disabled
属性,使其表现出禁用状态
<!-- 警用状态,通过给按钮添加disabled 属性,使其表现出禁用状态 -->
<p>
<button class="btn btn-primary" disabled="disabled">禁用按钮</button>
</p>
图片
响应式图片:使图片可以随着浏览器宽度的改变得到响应,通过添加.img-responsive就可以实现
<img src="../img/alibaba.PNG" class="img-responsive" alt="Responsive image">
图片形状:给图片添加 img-rounded,img-circle,img-thembnail类,可以改变图片形状,并且主要是将图片的圆角发生改变
<!-- 图片尺寸,给图片添加 img-rounded,img-circle,img-thembnail类,可以改变图片圆角形状 -->
<img src="../img/s1.jpg" alt="..." class="img-rounded">
<img src="../img/s1.jpg" alt="..." class="img-circle">
<img src="../img/s1.jpg" alt="..." class="img-thumbnail">
表单
在bootstrap中的表单里形容的标签需要被label标签嵌套,比如说正常表单中写的是:
用户名:<input type="text" name="username">
但是在bootstrap中用户名需要使用label标签嵌套,并且要给label标签中添加for属性,for属性的内容是input标签的id值
<label for="name">用户名</label>
<input type="text" id="name" class="form-control">
单独的表单控件会被自动赋予一些全局样式。所有设置了 .form-control
类的 <input>
、<textarea>
和 <select>
元素都将被默认设置宽度属性为 width: 100%;
。 将 label
元素和前面提到的控件包裹在 .form-group
中可以获得最好的排列。
<div class="form-froup">
<label for="name">用户名</label>
<input type="text" id="name" class="form-control">
</div>
基本表单(垂直表单):
其中input中的placeholder属性是标签的默认显示字体
<form>
<div class="form-froup">
<label for="name">用户名:</label>
<input type="text" id="name" class="form-control" placeholder="请输入用户名">
</div>
<div class="form-group">
<label for="pwd">密码:</label>
<input type="password" id="pwd" class="form-control" placeholder="请输入密码">
</div>
<div class="checkbox">
<label>
<input type="checkbox" name="aihao">看书
</label>
<label>
<input type="checkbox" name="aihao">睡觉
</label>
<label>
<input type="checkbox" name="aihao">吃饭
</label>
</div>
<button type="submit" class="btn btn-danger btn-block">提交</button>
</form>
内联表单(一行表单):在bootstrap中,表单的默认样式是垂直表单,要是想让表单变成一行内容显示的表单,只需要在from标签里添加form-inline类
<form action="" class="form-inline">
<div class="form-group">
<label for="username">姓名:</label>
<input type="text" id="username" class="form-control" placeholder="请输入姓名">
</div>
<div class="form-group">
<label for="mima">密码:</label>
<input type="text" id="mima" class="form-control" placeholder="请输入姓名">
</div>
<input type="button" value="提交" class="btn btn-danger">
</form>
水平表单:先要在form标签添加form-horizontal类,然后再和栅格系统进行搭配,才能得到好的效果
1、form加入class=”form-horizontal”
2、在form-group中使用栅格系统
3、label必须加入class=”control-label”使label中的字体靠右
<h2 class="text-center">水平表单</h2>
<form action="" class="form-horizontal">
<div class="form-group">
<label for="xm" class="col-sm-2 control-label">用户名:</label>
<div class="col-sm-10">
<input type="text" id="xm" class="form-control">
</div>
</div>
<div class="form-group">
<label for="mm" class="col-sm-2 control-label">密码:</label>
<div class="col-sm-10">
<input type="text" id="mm" class="form-control">
</div>
</div>
</form>
被支持的控件
输入框:包括大部分表单控件、文本输入域控件,还支持所有 HTML5 类型的输入控件: text
、password
、datetime
、datetime-local
、date
、month
、time
、week
、number
、email
、url
、search
、tel
和 color
。
文本域:支持多行文本的表单控件,可根据需要改变rows属性
<div class="form-group">
<label class="col-sm-2 control-label" for="wbk">文本框</label>
<div class="col-sm-10">
<textarea class="form-control" id="wbk" rows="3"></textarea>
</div>
</div>
复选框单选框:多选框(checkbox)用于选择列表中的一个或多个选项,而单选框(radio)用于从多个选项中只选择一个,可以通过给input的父类的label的父类div添加disabled类,和给input添加disabled类从而实现禁止选取的状态
<h3 class="text-center">单选框复选框</h3>
<div class="form-group">
<label class="col-sm-2 control-label">多选</label>
<div class="col-sm-10">
<div class="checkbox">
<label>
<input type="checkbox" value="">看书
</label>
</div>
<div class="checkbox">
<label>
<input type="checkbox" value="">学习
</label>
</div>
<div class="checkbox disabled">
<label>
<input type="checkbox" value="" disabled>睡觉
</label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">单选</label>
<div class="col-sm-10">
<div class="radio">
<label>
<input type="radio" name="optionsRadios" id="optionsRadios1" value="option1" checked>男
</label>
</div>
<div class="radio">
<label>
<input type="radio" name="optionsRadios" id="optionsRadios2" value="option2">女
</label>
</div>
<div class="radio disabled">
<label>
<input type="radio" name="optionsRadios" id="optionsRadios3" value="option3" disabled>保密
</label>
</div>
</div>
</div>
下拉列表:使下拉列表实现成bootstrap提供的样式,并且对于标记了 multiple
属性的 <select>
控件来说,默认显示多选项
<div class="form-group">
<label for="citys" class="col-sm-2 control-label">请选择城市</label>
<div class="col-sm-10">
<select name="citys" id="citys" class="form-control">
<option value="wuhan">武汉</option>
<option value="beijing">北京</option>
<option value="shanghai">上海</option>
</select>
</div>
</div>
静态控件
如果需要在表单中将一行纯文本和 label
元素放置于同一行,为 <p>
元素添加 .form-control-static
类即可。
<div class="form-group">
<label class="col-sm-2 control-label">邮箱:</label>
<div class="col-sm-10">
<p class="form-control-static">email@example.com</p>
</div>
</div>
组件
无数可复用的组件,包括字体图标、下拉菜单、导航、警告框、弹出框等更多功能。并且组件都是放在fonts文件夹内,并且要导入css类才能使用
字体图标
出于性能的考虑,所有图标都需要一个基类(glyphicon)和对应每个图标的类。注意:为了设置正确的内补(padding),务必在图标和文本之间添加一个空格。
1、所有字体图标都有一个基类 glyphicon 使用对应图标类
2、不能与任何bootstrap中其他的类联合使用, 必须单独创建一个span标签嵌套,通过span进行图标使用
3、并且字体图标只会对内容为空的span起作用
4、要是想要使用对应的图标,只需要去bootstrap官网找到组件板块,去查找是什么类,直接复制类过去
<p>这是一个箭头图标 <span class="glyphicon glyphicon-menu-left"></span> </p>
并且字体图标不仅仅可以放在文本里面,还可以放在按钮里面
<button class="btn btn-primary">用户登录 <span class="glyphicon glyphicon-user"></span> </button>
下拉菜单
由于下拉菜单需要使用js文件,但是bootstrap的js是以jquery为基础,所以我们要首先导入jquery文件,在导入bootstrap的js文件
<!-- 导入css样式 -->
<link rel="stylesheet" href="../bootstrap-3.3.7-dist/css/bootstrap.css">
<!-- 导入jQuery文件 -->
<script src="../bootstrap-3.3.7-dist/js/jQuery.1.12.4.js"></script>
<!-- 导入bootstrap的js文件 -->
<script src="../bootstrap-3.3.7-dist/js/bootstrap.js"></script>
将下拉菜单触发器和下拉菜单都包裹在 .dropdown
里,或者另一个声明了 position: relative;
的元素。然后加入组成菜单的 HTML 代码。
并且一个下拉菜单有两个部分,一部分是下拉按钮(需要通过data-toggle="dropdown"),一部分是下拉菜单(需要添加dropdown-menu类)
1、通过dropdown容器包裹下拉按钮和下拉菜单
2、下拉菜单加入dropdown-menu样式
3、下拉按钮加入data-toggle=”dropdown”展示菜单和隐藏菜单
<!-- 使用dropdown类 -->
<div class="dropdown">
<!-- 下拉按钮 -->
<button class="btn btn-primary" data-toggle="dropdown">选择城市 <span class="glyphicon glyphicon-menu-down"></span> </button>
<!-- 下拉菜单 -->
<ul class="dropdown-menu">
<li><a href="#">北京</a></li>
<li><a href="#">上海</a></li>
<li><a href="#">武汉</a></li>
</ul>
</div>
分割线:如果想在下拉菜单加一个分割线,只需要在下拉菜单的li里加上一行li,并且添加divider类,就可以实现分割线功能。
<!-- 分割线 -->
<li role="separator" class="divider"></li>
禁用选项:为下拉菜单中的 <li> 元素添加 .disabled 类,从而禁用相应的菜单项。
<!-- 禁用菜单项 -->
<li class="disabled"><a href="#">黄冈</a></li>
菜单标题:如果想要给下拉菜单的选项进行分类,则可以给li标签添加dropdown-header类,来给菜单的选项添加一个标题
<li class="dropdown-header">一线城市</li>
上拉菜单:上拉菜单和下拉菜单核心代码是一样的,只是将最外层的dropdown改成了dropup
<!-- 上拉菜单 -->
<div class="dropup">
<button class="btn btn-primary" data-toggle="dropdown">选择城市 <span class="glyphicon glyphicon-menu-down"></span> </button>
<ul class="dropdown-menu">
<li><a href="#">北京</a></li>
<li><a href="#">上海</a></li>
<li><a href="#">武汉</a></li>
</ul>
</div>
按钮组
通过按钮组容器(.btn-group
)把一组按钮放在同一行里。通过与按钮插件联合使用,可以设置为单选框或多选框的样式和行为。并且按钮组和独立按钮的最大的差别就是独立按钮之间有缝隙,但是按钮组之间没有缝隙
<!-- 按钮组件基本使用 -->
<!-- 通过按钮组容器.btn-group包裹 -->
<div class="btn-group">
<button class="btn btn-danger">按钮1</button>
<button class="btn btn-danger">按钮2</button>
<button class="btn btn-danger">按钮3</button>
</div>
按钮组工具栏:在按钮组之外在使用容器.btn-toolbar包裹两个及以上的按钮组,即可组成一个按钮组工具栏
<!-- 按钮组工具栏,在按钮组之外在使用容器.btn-toolbar包裹两个及以上的按钮组 -->
<div class="btn-toolbar">
<div class="btn-group">
<button class="btn btn-danger">按钮1</button>
<button class="btn btn-danger">按钮2</button>
<button class="btn btn-danger">按钮3</button>
</div>
<div class="btn-group">
<button class="btn btn-danger">按钮4</button>
<button class="btn btn-danger">按钮5</button>
<button class="btn btn-danger">按钮6</button>
</div>
</div>
调整按钮组尺寸:只要给 .btn-group 加上 .btn-group-* 类,就省去为按钮组中的每个按钮都赋予尺寸类了,如果包含了多个按钮组时也适用。(*就是尺寸大小,分别为:lg,sm,xs)
<!-- 按钮组尺寸,只要给 .btn-group 加上 .btn-group-* 类,就省去为按钮组中的每个按钮都赋予尺寸类了,如果包含了多个按钮组时也适用。 -->
<div class="btn-group btn-group-lg">
<button class="btn btn-danger">按钮1</button>
<button class="btn btn-danger">按钮2</button>
<button class="btn btn-danger">按钮3</button>
</div>
按钮组嵌套:可以将下拉菜单添加到按钮组里去,但是需要把下拉菜单的.dropdown改成.btn-group
<!-- 按钮组嵌套 -->
<div class="btn-group" role="group" aria-label="Button group">
<button class="btn btn-primary">按钮1</button>
<button class="btn btn-primary">按钮2</button>
<button class="btn btn-primary">按钮3</button>
<!-- 将下拉菜单的.dropdown修改成.btn-group -->
<div class="btn-group">
<button class="btn btn-primary dropdown-toggle" data-toggle="dropdown">下拉菜单 <span class="caret"></span> </button>
<ul class="dropdown-menu">
<li>下拉菜单1</li>
<li>下拉菜单2</li>
<li>下拉菜单3</li>
</ul>
</div>
</div>
垂直排列按钮组:让按钮组垂直排列,只需要.btn-group类换成.btn-group-vertical类就可以将按钮组垂直排列
<!-- 垂直排列按钮组,只需要.btn-group类换成.btn-group-vertical -->
<div class="btn-group-vertical">
<button class="btn btn-primary">按钮1</button>
<button class="btn btn-primary">按钮2</button>
<button class="btn btn-primary">按钮3</button>
</div>
自适应按钮组:让按钮组自适应屏幕的宽度,只需要给按钮组添加.btn-group-justified 就可以了,但是必须是使用a标签的按钮,不能使用input标签的按钮
<div class="container">
<div class="row">
<div class="col-sm-12">
<div class="btn-group btn-group-justified">
<a href="#" class="btn btn-primary">按钮1</a>
<a href="#" class="btn btn-primary">按钮2</a>
<a href="#" class="btn btn-primary">按钮3</a>
</div>
</div>
</div>
</div>
按钮下拉菜单:
<!-- 按钮下拉菜单,将下拉菜单的.dropdown修改成.btn-group -->
<div class="btn-group">
<button class="btn btn-primary" data-toggle="dropdown">选择爱好 <span class="caret"></span></button>
<ul class="dropdown-menu">
<li><a href="#">爱好1</a></li>
<li><a href="#">爱好2</a></li>
<li><a href="#">爱好3</a></li>
</ul>
</div>
分裂式下拉菜单:
<!-- 分裂式下拉菜单,点击选择爱好不会显示下拉菜单,点击下三角符号可以显示下拉菜单,就是将原本的一个按钮分成两个,并且将事件绑定在三角符号上 -->
<div class="btn-group">
<button class="btn btn-primary">选择爱好</button>
<button class="btn btn-primary" data-toggle="dropdown"> <span class="caret"></span> </button>
<ul class="dropdown-menu">
<li><a href="#">爱好1</a></li>
<li><a href="#">爱好2</a></li>
<li><a href="#">爱好3</a></li>
</ul>
</div>
输入框组:
就是将多个input并且不同type类型(按钮、文本框)组合在一起,是用来美化文本框的。需要使用.input-group 来包裹住from-group里面的所有input,要是想要再input标签前面添加文本,则再input前面使用span标签,标签内加上要显示的文本,然后给span标签并且可以不需要最外层的.form-group添加 .input-group-addon
并且可以不需要最外层的.form-group
<!-- 基本输入框组 -->
<form action="">
<div class="form-group">
<label for="username">邮箱地址</label>
<div class="input-group">
<span class="input-group-addon">@</span>
<input type="text" name="" id="username" class="form-control" placeholder="请输入邮箱地址">
<span class="input-group-addon">.com</span>
</div>
</div>
</form>
实例:
<!-- 放在左边 -->
<div class="input-group">
<span class="input-group-addon">@</span>
<input type="text" name="" id="username" class="form-control" placeholder="请输入邮箱地址">
</div>
<!-- 放在右边 -->
<div class="input-group">
<input type="text" name="" id="username" class="form-control" placeholder="请输入邮箱地址">
<span class="input-group-addon">.com</span>
</div>
改变尺寸:为 .input-group
添加相应的尺寸类(input-group-sm小, input-group-lg大),其内部包含的元素将自动调整自身的尺寸。不需要为输入框组中的每个元素重复地添加控制尺寸的类
<!-- 改变尺寸 -->
<!-- 大尺寸 -->
<div class="input-group input-group-lg">
<span class="input-group-addon">@</span>
<input type="text" name="" id="username" class="form-control" placeholder="请输入邮箱地址">
<span class="input-group-addon">.com</span>
</div>
<!-- 默认尺寸 -->
<div class="input-group">
<span class="input-group-addon">@</span>
<input type="text" name="" id="username" class="form-control" placeholder="请输入邮箱地址">
<span class="input-group-addon">.com</span>
</div>
<!-- 小尺寸 -->
<div class="input-group input-group-sm">
<span class="input-group-addon">@</span>
<input type="text" name="" id="username" class="form-control" placeholder="请输入邮箱地址">
<span class="input-group-addon">.com</span>
</div>
输入框中加入其他元素:可以将多选框或单选框作为额外元素添加到输入框组中。将多选框或者单选框放在span标签内
<!-- 放入其他元素 -->
<div class="input-group">
<span class="input-group-addon"><input type="checkbox" name="" id=""></span>
<input type="text" class="form-control">
</div>
放入按钮:将span的input-group-addon改成input-group-btn,并且将sapn里面的内容修改成按钮并且添加样式
<div class="input-group">
<span class="input-group-btn"><button class="btn btn-primary">点击按钮</button></span>
<input type="text" class="form-control">
</div>
放入下拉菜单:再span标签里面添加一个下拉菜单就可以,并且下拉菜单的dropdown容器可以存在也可以不写,并且不写也可以是按钮和文本框之间的距离更小
<div class="input-group">
<span class="input-group-btn">
<!-- 可以删掉dropdown容器,添加与不添加都一样 -->
<!-- <div class="dropdown"> -->
<button class="btn btn-default" data-toggle="dropdown">点击下拉 <span class="caret"></span> </button>
<ul class="dropdown-menu">
<li><a href="#">下拉1</a></li>
<li><a href="#">下拉2</a></li>
<li><a href="#">下拉3</a></li>
<li><a href="#">下拉4</a></li>
</ul>
<!-- </div> -->
</span>
<input type="text" class="form-control">
</div>
导航
Bootstrap 中的导航组件都依赖同一个 .nav 类,状态类也是共用的。改变修饰类可以改变样式。只要是导航组件都要添加基类nav,然后在基类的基础上添加一些样式类
状态类:active选中样式、
标签式导航:给div添加nav-tabs样式类,就显示出来的是可以切换到标签页,如果想要通过点击来切换内容,需要使用js的插件
<!-- 标签式导航 nav-tabs -->
<ul class="nav nav-tabs">
<!-- active是状态类,表示选中 -->
<li class="active"><a>标签1</a></li>
<li><a>标签2</a></li>
<li><a>标签3</a></li>
</ul>
胶囊式标签页:HTML 标记相同,但使用 .nav-pills 类
<!-- 胶囊式导航,HTML 标记相同,但使用 .nav-pills 类 -->
<ul class="nav nav-pills">
<!-- active是状态类,表示选中 -->
<li class="active"><a>标签1</a></li>
<li><a>标签2</a></li>
<li><a>标签3</a></li>
</ul>
并且胶囊式标签页也可以竖列排列,只需要在原来的基础上添加 .nav-stacked
类
<!-- 胶囊是标签页也是可以垂直方向堆叠排列的。只需添加 .nav-stacked 类 -->
<h3>垂直式胶囊式导航</h3>
<ul class="nav nav-pills nav-stacked">
<!-- active是状态类,表示选中 -->
<li class="active"><a>标签1</a></li>
<li><a>标签2</a></li>
<li><a>标签3</a></li>
</ul>
自适应导航标签页:在大于 768px 的屏幕上,无论是添加nav-tabs还是nav-pills,通过 .nav-justified 类可以很容易的让标签页或胶囊式标签呈现出同等宽度。在小屏幕上,导航链接呈现堆叠样式。
<ul class="nav nav-tabs nav-justified">
<!-- active是状态类,表示选中 -->
<li class="active"><a>标签1</a></li>
<li><a>标签2</a></li>
<li><a>标签3</a></li>
</ul>
禁用链接:无论是在标签页上还是胶囊式标签页里,只要在li上添加 .disabled
类,这样就可以实现禁用链接的效果
<ul class="nav nav-pills nav-stacked">
<!-- active是状态类,表示选中 -->
<li class="active"><a>标签1</a></li>
<li><a>标签2</a></li>
<li class="disabled"><a>标签3</a></li>
</ul>
带下拉菜单的导航栏:在导航栏的li标签里面添加下拉菜单,并且直接使用li标签添加dropdown,而且下拉菜单里面的button不能使用按钮来渲染,需要使用a标签来渲染,而且不需要给a标签添加按钮类
<ul class="nav nav-tabs">
<li class="active"><a href="">标签1</a></li>
<li><a href="">标签1</a></li>
<li><a href="">标签2</a></li>
<li class="dropdown">
<a data-toggle="dropdown"> 下拉菜单 <span class="caret"></span> </a>
<ul class="dropdown-menu">
<li><a href="#">标签3</a></li>
<li><a href="#">标签4</a></li>
</ul>
</li>
</ul>
导航条
导航条不需要记住,只需要在要使用的时候去官网复制粘贴,学会修改导航条就可以了
导航条是页面最上方的导航栏,需要使用bootstrap提供的nav标签,还要给nav标签添加.navbar和.navbar-default,再在nav标签里使用栅格系统,要是使用container就是两边不留白,要是使用container-fluid则两边都有留白
<nav class="navbar navbar-default">
<div class="container">
</div>
</nav>
导航条分为两个部分,分别是navbar-header(标题)和navbar-collapse(导航条的所有内容),并且navbar-collapse需要使用collapse基类。
导航条标题:
<div class="navbar-header">
<!-- 下面的button可有可无,是用来屏幕自适应的,品牌和切换进行分组以更好地显示手机-->
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse"
data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<!-- 这个是导航栏的标题 -->
<a class="navbar-brand" href="#">班级管理系统</a>
</div>
导航栏主体:除了导航条标题,就只剩下导航条的组件了
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Link <span class="sr-only">(current)</span></a></li>
<li><a href="#">Link</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
aria-expanded="false">Dropdown <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li role="separator" class="divider"></li>
<li><a href="#">Separated link</a></li>
<li role="separator" class="divider"></li>
<li><a href="#">One more separated link</a></li>
</ul>
</li>
</ul>
<form class="navbar-form navbar-left">
<div class="form-group">
<input type="text" class="form-control" placeholder="Search">
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
<ul class="nav navbar-nav navbar-right">
<li><a href="#">Link</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
aria-expanded="false">Dropdown <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li role="separator" class="divider"></li>
<li><a href="#">Separated link</a></li>
</ul></li></ul></div>
品牌图标:将导航条内放置品牌标志的地方替换为 <img>
元素即可展示自己的品牌图标。由于 .navbar-brand
已经被设置了内补(padding)和高度(height),你需要根据自己的情况添加一些 CSS 代码从而覆盖默认设置。并且要把图片宽高设置成20*20的
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="#">
<img alt="Brand" src="logo.jpg" width="20px" height="20px">
</a>
</div>
</div>
</nav>
组件排列:通过添加 .navbar-left
和 .navbar-right
工具类让导航链接、表单、按钮或文本对齐。两个类都会通过 CSS 设置特定方向的浮动样式。例如,要对齐导航链接,就要把它们放在个分开的、应用了工具类的 <ul>
标签里。
最好使用ul来进行组件的排列,并且给ul添加.nav.navbar-nav
放入表单:将表单放置于 .navbar-form
之内可以呈现很好的垂直对齐,并在较窄的视口(viewport)中呈现折叠状态。 使用对齐选项可以规定其在导航条上出现的位置。
按钮:对于不包含在 <form>
中的 <button>
元素,加上 .navbar-btn
后,可以让它在导航条里垂直居中。有一些对于为辅助设备提供可识别标签的方法,例如, aria-label
、aria-labelledby
或者 title
属性。如果这些方法都没有,屏幕阅读器将使用 placeholder
属性(如果这个属性存在的话),但是请注意,使用 placeholder
代替其他识别标签的方式是不推荐的。
文本:把文本包裹在 .navbar-text
中时,为了有正确的行距和颜色,通常使用 <p>
标签。
非导航的链接:或许你希望在标准的导航组件之外添加标准链接,那么,使用 .navbar-link
类可以让链接有正确的默认颜色和反色设置。
<ul class="nav navbar-nav">
<li>
<!-- 放入表单 -->
<form class="navbar-form navbar-left" role="search">
<div class="form-group">
<input type="text" class="form-control" placeholder="Search">
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
</li>
<li>
<!-- 放入按钮 -->
<button type="button" class="btn btn-default navbar-btn">Sign in</button></li>
<li>
<!-- 放入文本 -->
<p class="navbar-text">Signed in as Mark Otto</p>
</li>
<li>
<!-- 非导航的链接 -->
<p class="navbar-text navbar-right">Signed in as <a href="#" class="navbar-link">Mark Otto</a>
</p>
</li>
</ul>
固定在顶部:添加 .navbar-fixed-top
类可以让导航条固定在顶部,还可包含一个 .container
或 .container-fluid
容器,从而让导航条居中,并在两侧添加内补(padding)。
<!-- 固定在顶部 -->
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
...
</div>
</nav>
固定在底部:添加 .navbar-fixed-bottom
类可以让导航条固定在底部,并且还可以包含一个 .container
或 .container-fluid
容器,从而让导航条居中,并在两侧添加内补(padding)。
<!-- 固定在底部 -->
<nav class="navbar navbar-default navbar-fixed-bottom">
<div class="container">
...
</div>
</nav>
静止在顶部:通过添加 .navbar-static-top
类即可创建一个与页面等宽度的导航条,它会随着页面向下滚动而消失。还可以包含一个 .container
或 .container-fluid
容器,用于将导航条居中对齐并在两侧添加内补(padding)。
<!-- 静止的导航条 -->
<nav class="navbar navbar-default navbar-static-top">
<div class="container">
...
</div>
</nav>
反色的导航条:通过添加 .navbar-inverse
类可以改变导航条的外观。
<nav class="navbar navbar-inverse">
...
</nav>
路径导航
在一个带有层次的导航结构中标明当前页面的位置。给ol标签添加breadcrumb类就可以实现,并且ol下面的li需要嵌套a标签,要是是当前页面还需要添加状态类active,而且被active的li标签不能有a标签
<ol class="breadcrumb">
<li><a href="#">Home</a></li>
<li><a href="#">Library</a></li>
<li class="active">Data</li>
</ol>
分页工具栏
为您的网站或应用提供带有展示页码的分页组件,或者可以使用简单的翻页组件。
默认分页
默认分页是写在nav标签所嵌套的ul标签里面,并且要给ul标签添加.pagination类,ul里面使用li>a来构建,a标签里面添加翻页的页码,而且向前/后翻页按钮是通过特殊符号来实现
<nav>
<ul class="pagination">
<li>
<a href="#" aria-label="Previous">
<!-- 向前翻页按钮,通过特殊符号«构成,和aria-hidden没有关系-->
<span aria-hidden="true">«</span>
</a>
</li>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
<li>
<a href="#" aria-label="Next">
<!-- 向后翻页按钮,通过特殊符号»构成,和aria-hidden没有关系-->
<span aria-hidden="true">»</span>
</a>
</li>
</ul>
</nav>
选用和禁用状态:链接在不同情况下可以定制。可以给不能点击的链接的li标签添加 .disabled
类、给当前页添加 .active
类
<nav>
<ul class="pagination">
<li><a href="#"><span>«</span></a></li>
<!-- 添加选用 -->
<li class="active"><a href="#">1</a></li>
<li><a href="#">2</a></li>
<!-- 添加禁用 -->
<li class="disabled"><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
<li><a href="#"><span>»</span></a></li>
</ul>
</nav>
尺寸:给ul标签添加.pagination-lg
或 .pagination-sm
类提供了额外可供选择的尺寸
<!-- 改变尺寸 -->
<nav><ul class="pagination pagination-lg">...</ul></nav>
<nav><ul class="pagination">...</ul></nav>
<nav><ul class="pagination pagination-sm">...</ul></nav>
翻页
简单翻页,用简单的标记和样式,就能做个上一页和下一页的简单翻页。
同样使用nav标签嵌套ul标签,给ul标签添加.pager,ul标签内使用li>a标签,再在a标签里面写入内容,并且是默认居中
<nav>
<ul class="pager">
<li><a href="#">上一页</a></li>
<li><a href="#">下一页</a></li>
</ul>
</nav>
翻页两端对齐:给li标签添加.previous实现左边对齐,添加.next实现右边对齐
<nav aria-label="...">
<ul class="pager">
<li class="previous"><a href="#"><span>←</span> 上一页</a></li>
<li class="next"><a href="#">下一页 <span>→</span></a></li>
</ul>
</nav>
可选禁用状态:给li标签添加.disabled可是实现禁用状态
<nav>
<ul class="pager">
<li class="previous disabled"><a href="#">Older</a></li>
<li class="next"><a href="#">Newer</a></li>
</ul>
</nav>
标签
使用标签可以给信息加一些标签,可以随时用,标签是使用span嵌套的,span里面的内容就是标签的内容,标签样式的基类是label,要是想要改变样式则需要添加其他的标签装饰类
<!-- 基本标签 基类是label -->
<h1>基本标签 <span class="label label-default">New</span></h1>
<h2>基本标签 <span class="label label-default">New</span></h2>
<h3>基本标签 <span class="label label-default">New</span></h3>
<h4>基本标签 <span class="label label-default">New</span></h4>
<h5>基本标签 <span class="label label-default">New</span></h5>
<h6>基本标签 <span class="label label-default">New</span></h6>
其他样式的标签:和btn一样,使用标签也要添加除了基类以外其他的标签类
<!-- 给标签改变样式 -->
<span class="label label-default">Default</span>
<span class="label label-primary">Primary</span>
<span class="label label-success">Success</span>
<span class="label label-info">Info</span>
<span class="label label-warning">Warning</span>
<span class="label label-danger">Danger</span>
徽章
给链接、按钮等元素嵌套 <span class="badge"> 元素,可以很醒目的展示新的或未读的信息条目。
<a href="#">Inbox <span class="badge">42</span></a>
<button class="btn btn-primary" type="button">
Messages <span class="badge">4</span>
</button>
修改徽章颜色:a标签的徽章需要自己手动在style标签里面更改backgroud-color属性来修改,button标签的徽章通过改变按钮的background-color来改变
胶囊式导航的徽章:将胶囊式导航的徽章里面通过嵌套span标签并添加badge类也可以实现胶囊式导航有未读消息等效果
<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>
巨幕
能延伸至整个浏览器视口来展示网站上的关键内容(给当前的页面添加一个灰色的背景,然后添加一些文字填充)
巨幕最外面使用一个div并且添加.jumbotron,然后在div里写上自己想填充的文字
<div class="jumbotron">
<h1>Hello, world!</h1>
<p>...</p>
<p><a class="btn btn-primary btn-lg" href="#" role="button">Learn more</a></p>
</div>
也可以使用巨幕来包括其他的组件,从而形成自己想要的效果
页头
使用div标签并且添加.page-header,然后就和h1标签和small标签搭配使用,效果会比h1标签和small标签搭配稍微好看点,添加了下划线
<!-- 页头 page-header -->
<div class="page-header">
<h1>页头 <small>小文字</small></h1>
</div>
缩略图
缩略图是放在栅格系统里面的,只需要在栅格系统里面使用a标签添加.thumbnail类再嵌套住img就可以实现了,多放几个栅格就可以实现一排缩略图
自定义样式缩略图:先将a标签替换成div标签,并且也要添加thumbnail类,里面再添加一个div,并且给div添加caption类,再在caption里添加其他的组件,比如说按钮和p标签,就可以组成一个好看的缩略图
<div class="col-sm-3">
<div class="thumbnail text-center">
<img src="../img/c1.jpg" alt="">
<div class="caption">
<p>第一排文字</p>
<button class="btn btn-danger">按钮</button>
</div>
</div></div>
警告框
做出提示作用,使用div并且添加基类.alert,然后再使用其他的装饰类来进行修饰,警告内容直接写在div里
<div class="alert alert-success">...</div>
<div class="alert alert-info">...</div>
<div class="alert alert-warning">...</div>
<div class="alert alert-danger">...</div>
具有关闭功能的警告框:为警告框添加一个可选的 .alert-dismissible
类和一个关闭按钮。这个按钮要写在警告框的前面,并且不能添加.btn.btn-warning,而是添加.close,还要再按钮里面通过<span>×</span>来构建一个叉号,并且要在按钮中加入data-dismiss="alert"才能具有关闭的效果
<div class="alert alert-warning alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span>×</span></button>
<strong>Warning!</strong> 点击右侧按钮可以关闭警告
</div>
警告框中的链接:在警告框中添加a标签,再用 .alert-link
工具类,可以为链接设置与当前警告框相符的颜色。
<div class="alert alert-danger">
这是一个<a href="#" class="alert-link">链接</a>
</div>
进度条
首先需要一个div当成容器,并且添加.progress类,在容器里面还要使用div,添加.progress-bar类,需要使用css来设置百分比宽度,在div里面加入百分比,这里的百分比需要和css中的宽度百分比一样
<div class="progress">
<div class="progress-bar" style="width: 30%;">
30%
</div>
</div>
更换颜色:给div.progress-bar再添加一个progress-bar-xxx类
<div class="progress">
<div class="progress-bar progress-bar-danger" style="width: 90%;">
90%
</div>
</div>
<div class="progress">
<div class="progress-bar progress-bar-success" style="width: 60%;">
60%
</div>
</div>
<div class="progress">
<div class="progress-bar progress-bar-warning" style="width: 100%;">
100%
</div>
</div>
条纹状进度条:给div..progress-bar再添加一个progress-bar-striped类,就可以显示成条纹状的。
<div class="progress">
<div class="progress-bar progress-bar-warning progress-bar-striped" style="width: 100%;">
100%
</div>
</div>
动画条纹状进度条:为 .progress-bar-striped
添加 .active
类,使其呈现出由右向左运动的动画效果
<div class="progress">
<div class="progress-bar progress-bar-warning progress-bar-striped active" style="width: 90%;">
90%
</div>
</div>
堆叠效果: 把多个进度条放入同一个 .progress 中,使它们呈现堆叠的效果。
<div class="progress">
<div class="progress-bar progress-bar-success" style="width: 35%">
<span class="sr-only">35% Complete (success)</span>
</div>
<div class="progress-bar progress-bar-warning progress-bar-striped" style="width: 20%">
<span class="sr-only">20% Complete (warning)</span>
</div>
<div class="progress-bar progress-bar-danger" style="width: 10%">
<span class="sr-only">10% Complete (danger)</span>
</div>
</div>
列表组
通过一个个ul和li组成的,会默认占容器的百分之百,列表组list-group,列表项list-group-item
<ul class="list-group">
<li class="list-group-item">Spring</li>
<li class="list-group-item">Redis</li>
<li class="list-group-item">Bootstrap</li>
</ul>
带徽章的列表组:将徽章嵌套再列表组里就可以了
<ul class="list-group">
<li class="list-group-item">Spring <span class="badge">2</span></li>
<li class="list-group-item">Redis <span class="badge">22</span></li>
<li class="list-group-item">Bootstrap <span class="badge">23</span></li>
</ul>
按钮列表组:列表组中的元素也可以直接就是按钮(也同时意味着父元素必须是 <div>
而不能用 <ul>
了),并且无需为每个按钮单独包裹一个父元素。注意不要使用标准的 .btn
类!
<div class="list-group">
<button class="list-group-item">Spring</button>
<button class="list-group-item">Redis</button>
<button class="list-group-item">Bootstrap</button>
</div>
链接列表组:和按钮列表组一样,将ul改成div,再将button改成a标签
<div class="list-group">
<!-- 使用active添加激活样式 -->
<a href="#" class="list-group-item active">Spring</a>
<a href="#" class="list-group-item">Redis</a>
<a href="#" class="list-group-item">Bootstrap</a>
</div>
被禁用的条目:为 .list-group-item
添加 .disabled
类可以让单个条目显示为灰色,表现出被禁用的效果。
<div class="list-group">
<!-- 使用active添加激活样式 -->
<a href="#" class="list-group-item active">Spring</a>
<a href="#" class="list-group-item disabled">Redis</a>
<a href="#" class="list-group-item">Bootstrap</a>
</div>
情景类:为列表中的条目添加情境类(list-group-item-xxx success,danger,info等等),默认样式或链接列表都可以。还可以为列表中的条目设置 .active
状态。
<ul class="list-group">
<li class="list-group-item list-group-item-success">Dapibus ac facilisis in</li>
<li class="list-group-item list-group-item-info">Cras sit amet nibh libero</li>
<li class="list-group-item list-group-item-warning">Porta ac consectetur ac</li>
<li class="list-group-item list-group-item-danger">Vestibulum at eros</li>
</ul>
<div class="list-group">
<a href="#" class="list-group-item list-group-item-success">Dapibus ac facilisis in</a>
<a href="#" class="list-group-item list-group-item-info">Cras sit amet nibh libero</a>
<a href="#" class="list-group-item list-group-item-warning">Porta ac consectetur ac</a>
<a href="#" class="list-group-item list-group-item-danger">Vestibulum at eros</a>
</div>
定制内容:列表组中的每个元素都可以是任何 HTML 内容,比如说list-group-item-heading(头部),list-group-item-text(文本)
<div class="list-group">
<a href="#" class="list-group-item active">
<h4 class="list-group-item-heading">List group item heading</h4>
<p class="list-group-item-text">...</p>
</a>
</div>
面板
不是必须的内容,但是某些时候你可能需要将某些 DOM 内容放到一个盒子里。对于这种情况,可以试试面板
面板是将文字放在一个div里,然后这个div里面会有内补和边框,面板的基类.panel,然后需要加上其他的修饰类(情景效果:如:panel-default,panel-xxx success info warning danger),并且有了面板容器之后不能直接将面板内容写在面板容器里面,需要写在panel-body里面
<!-- 面板容器 -->
<div class="panel panel-default">
<!-- 面板内容 -->
<div class="panel-body">
Basic panel example
</div>
</div>
带标题的面板:通过 .panel-heading 可以很简单地为面板加入一个标题容器。也可以通过添加设置了 .panel-title 类的 <h1>-<h6> 标签,添加一个预定义样式的标题。不过,<h1>-<h6> 标签的字体大小将被 .panel-heading 的样式所覆盖。为了给链接设置合适的颜色,务必将链接放到带有 .panel-title 类的标题标签内。并且面板容器中的panel-xxx是控制面板边框和标题的背景色的
带脚注的面板:把按钮或次要的文本放入 .panel-footer 容器内。注意面版的脚注不会从情境效果中继承颜色,因为他们并不是主要内容。
<div class="panel panel-success">
<!-- 面板标题 panel-heading -->
<div class="panel-heading">
<!-- 带有panel-title可以保存标题样式 -->
<h3 class="panel-title">Panel title</h3>
</div>
<!-- 面板内容 panel-body-->
<div class="panel-body">
Panel content
</div>
<!-- 脚注 panel-footer -->
<div class="panel-footer">
<p>Footer content</p>
</div>
</div>
带表格的面板:为面板中不需要边框的表格添加 .table
类,是整个面板看上去更像是一个整体设计。如果是带有 .panel-body
的面板,我们为表格的上方添加一个边框,看上去有分隔效果。
<!-- 带表格的面板 -->
<div class="panel panel-default">
<!-- Default panel contents -->
<div class="panel-heading">Panel heading</div>
<div class="panel-body">
<p>...</p>
</div>
<!--Table 如果没有 .panel-body ,面版标题会和表格连接起来,没有空隙。 -->
<table class="table">
<tr><td>demo</td><td>demo</td><td>demo</td></tr>
<tr><td>demo</td><td>demo</td><td>demo</td></tr>
</table>
</div>
面板中嵌套列表:和嵌套table一样,直接将table.table更换成ul.list-group,li标签也要添加list-group-item
<div class="panel panel-default">
<!-- Default panel contents -->
<div class="panel-heading">Panel heading</div>
<div class="panel-body">
<p>...</p>
</div>
<!-- 和嵌套table一样,直接将table.table更换成ul.list-group,li标签也要添加list-group-item -->
<ul class="list-group">
<li class="list-group-item">列1</li>
<li class="list-group-item">列2</li>
</ul>
</div>
JavaScript插件
每一个JavaScript组件都有三个属性:参数、方法、事件,只要具体了解一个组件的使用方法其他的组件使用方法套娃就行
事件使用:对应组件选择器.on(事件名,事件处理函数)
模态框 modal
模态框就是类似于一个对话框,并且默认再屏幕上创建的静态的模态框是不可以展示的,要是想要展示则要调用模态框js插件。
html主体:直接再官网拷贝就可以,不需要特意的去记,会改就可以了。
<!-- fade是展开模态框时的辅助动画 ,可以删除;id是用来方便绑定事件 -->
<div class="modal fade" id="myModal">
<div class="modal-dialog">
<div class="modal-content">
<!-- 模态框标题 -->
<div class="modal-header">
<!-- 右上角的关闭按钮 -->
<button type="button" class="close" data-dismiss="modal"><span>×</span></button>
<!-- 标题 -->
<h4 class="modal-title">模态框</h4>
</div>
<!-- 模态框内容 -->
<div class="modal-body">
<p>主体内容,也可以是表单等等…</p>
</div>
<!-- 模态框脚注 -->
<div class="modal-footer">
<!-- data-dismiss就是给按钮加上一个单击事件,让他关闭对话框 -->
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary">确认修改</button>
</div>
</div>
</div>
</div>
方法:因为模态框是modal,所以js的绑定方法也是使用
.modal(options)
$(“模态框id”).modal({
参数列表
})
参数:
$("#myModal").modal({
show : true,//展示模态框
backdrop : false,// 点击旁边区域不关闭模态框
keyboard : false,// 点击键盘上esc键不能关闭对话框
})
默认设置会直接导致一点开页面就直接打开模态框,所以我们可以创建一个按钮,然后给按钮绑定事件,通过点击按钮来展示模态框
<button id="btn" class="btn btn-primary">显示模态框</button>
$("#btn").click(function (e) {
e.preventDefault();
$("#myModal").modal({
show: true,//展示模态框
})
});
.modal('toggle')
手动打开或关闭模态框。在模态框显示或隐藏之前返回到主调函数中也是通过按钮为媒介(模态框里面一个,页面外面一个),从而可以实现状态之间的切换
.modal('show') .modal('hide')
是参数形式
show:true/show:hide
的简写,再页面主体
/
模态框中添加一个按钮,然后点击按钮触发
$(“myModal”).modal(“show”)/.modal(“hide”)
事件:
事件类型 | 描述 |
show.bs.modal | Show方法点击之后就执行 |
shown.bs.modal | Show方法已经完全展示之后执行 |
hide.bs.modal | hide 方法调用之后立即触发该事件。 |
hidden.bs.modal | Hide方法完全隐藏之后执行该事件 |
$('#myModal').on('hidden.bs.modal', function (e) {
// 当发生事件时触发的函数
})
注意:
1、在一张页面中不支持同时打开多个模态框,也千万不要在一个模态框中嵌套另一个模态框
2、务必将模态框的 HTML 代码放在文档的最高层级内(也就是说,尽量作为 body 标签的直接子元素),以避免其他组件影响模态框的展现或功能。
导航
只是用css的组件来写导航栏是不可以发生改变的,而且组件只有第一部分(标签选项卡ul.nav.nav-tabs),需要通过选项卡面板(div.tab-content)来进行一一对应,而且选项卡中的div.tab-pane标签也要绑定id,然后选项卡中的a标签的href属性要绑定选项卡的id来进行控制,还要给a标签绑定事件data-toggle=”tab”
<!-- 标签选项卡 -->
<ul class="nav nav-tabs">
<li class="active"><a href="#bq1" data-toggle="tab" id="btn1">标签1</a></li>
<!-- 给a标签绑定事件 -->
<li><a href="#bq2" data-toggle="tab" id="btn2">标签2</a></li>
<!-- href属性要绑定选项卡面板的id -->
<li><a href="#bq3" data-toggle="tab" id="btn3">标签3</a></li>
</ul>
<!-- 选项卡面板 一个选项卡对应一个面板 -->
<div class="tab-content">
<!-- 通过给面板添加active标签,让面板变成默认选中 -->
<div class="tab-pane active" id="bq1">标签1内容</div>
<!-- 虽然绑定了事件,但是要通过id来进行控制 -->
<div class="tab-pane" id="bq2">标签2内容</div>
<div class="tab-pane" id="bq3">标签3内容</div>
</div>
方法:
.tab('show')
通过点击某个按钮来触发展示事件,并且绑定的是选项卡组件的id,不是选项卡面板的id
// 点击按钮触发事件
$("#btn").click(function (e) {
e.preventDefault();
// 注意调用的选项卡按钮的id,并不是选项卡面板的id
$("#btn1").tab("show");
});
事件:也是给对应的选项卡绑定事件,不是给选项卡面板绑定事件
事件类型 | 描述 |
show.bs.tab | 选项卡展示 |
shown.bs.tab | 选项卡彻底展示 |
hide.bs.tab | 选项卡隐藏 |
hidden.bs.tab | 选项卡彻底隐藏 |
并且这里要注意,由于绑定的是a标签事件,而且a标签会有很多data-toggle元素,所以再事件绑定的时候要通过事件选择器筛选一下,明确是a标签还绑定了data-toggle=”tab”的标签才可以
// 只有书写成a[data-toggle='tab']才能彻底明确是a标签帮绑定了data-toggle='tab'
$("a[data-toggle='tab']").on("show.bs.tab", function () {
})
手风琴 Collapse
不需要特地去记,只需要在使用的时候从官网复制就可以了,默认是占满显示器宽度的,一般都是和栅格系统搭配使用
<!-- 整个手风琴的容器 -->
<div class="panel-group" id="accordion">
<div class="panel panel-default">
<!-- 手风琴的标题,注意这里的id不能重复,每一块手风琴块都有对应的id -->
<div class="panel-heading" id="headingOne">
<h4 class="panel-title">
<!-- a标签的href决定点击按钮后折叠的是那一块内容,data-parent对应的是手风琴容器的id -->
<a data-toggle="collapse" data-parent="#accordion" href="#collapseOne">
手风琴1
</a>
</h4>
</div>
<!-- 手风琴标题所对应的内容,.in类的用途是一点进页面就是默认展示
-->
<div id="collapseOne" class="panel-collapse collapse in">
<div class="panel-body">
手风琴1内容
</div>
</div>
</div>
</div>
轮播图Carousel
轮播图是给最外面的div添加.carousel.slide类,并绑定data-ride=”carousel”事件,还要设置id
<div id="mainTopCarousel" class="carousel silde" data-ride="carousel">
<!-- 图片容器 -->
<div class="carousel-inner">
<div class="item active">
<img src="" alt="">
</div>
<div class="item">
<img src="" alt="">
</div>
<div class="item">
<img src="" alt="">
</div>
<div class="item">
<img src="" alt="">
</div>
<div class="item">
<img src="" alt="">
</div>
<div class="item">
<img src="" alt="">
</div>
</div>
<!-- 圆点指示符,给div添加.carousel-indicators -->
<ol class="carousel-indicators">
<!-- li标签需要通过data-target绑定轮播图的id,并且还要绑定data-slide-to来绑定图片索引,第一个还要加上active类 -->
<li data-target="#mainTopCarousel" data-slide-to="0" class="active"></li>
<li data-target="#mainTopCarousel" data-slide-to="0"></li>
<li data-target="#mainTopCarousel" data-slide-to="0"></li>
<li data-target="#mainTopCarousel" data-slide-to="0"></li>
<li data-target="#mainTopCarousel" data-slide-to="0"></li>
<li data-target="#mainTopCarousel" data-slide-to="0"></li>
</ol>
<!-- 左右控制箭头 -->
<!-- 左右箭头的href要绑定轮播图的id,并且要绑定data-slide事件,上一个就是prev,下一个就是next,还要给a标签添加carousel-control类,上一张添加left,下一张添加right -->
<a href="#mainTopCarousel" class="left carousel-control" data-slide="prev">
<span class="glyphicon glyphicon-chevron-left"></span>
</a>
<a href="#mainTopCarousel" class="right carousel-control" data-slide="next">
<span class="glyphicon glyphicon-chevron-right"></span>
</a>
</div>