<link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.bootcss.com/jquery/2.1.1/jquery.min.js">script>
<script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js">script>
<html>
....
html>
head
中添加 viewport meta 标签。<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no">
head>
font-size:14px; line-height:20px; line-height:10px; color:#333;
text-left
:向左对齐 text-right
:向右对齐 text-center
:居中对齐 text-justify
:两端对齐text-lowercase
:内容全部小写;text-uppercase
:内容全部大写;text-capitalize
:单词首字母大写。WWW
中即可表现为引用样式。在标签上添加.blockquote-reverse
类可以让引用内容呈现右对齐。
标签。
标签。
和
标签时,开始和结束标签使用了 unicode 转义字符: <
和 >
.table
。.table
元素包裹在.table-responsive
元素内,即可创建 响应式表格 。 提供了五种不同的类,每种类控制了行的不同背景颜色。
按钮
- 任何带有
.btn
类的元素都会继承圆角灰色按钮的默认外观。
- 虽然按钮类可以应用到其他标签元素上,但是导航和导航条组件只支持
元素。
- 如果
元素被作为按钮使用,并用于在当前页面触发某些功能 而不是用于链接页面,那么请为其设置 role="button"
属性。
- 所有的按钮样式都必须基于按钮基本样式
.btn
。
btn-default
默认样式;btn-success
成功样式;btn-warning
警告样式;btn-danger
危险样式;btn-primary
首选项样式;btn-link
链接样式;btn-info
信息样式
- 尺寸从大到小:
btn-lg
默认
btn-sm
btn-xs
。
- 块级按钮:通过给按钮添加
btn-block
来使其拉伸到父元素的100%宽度。
- 按钮的状态:
active
(激活态)呈现为被按压的外观(深色的背景、深色的边框、阴影); disabled
(禁用)悬浮时改变光标样式。
栅格系统
- 浏览器会随着屏幕的大小的增减自动分配最多
12
列。
- Bootstrap 需要为页面内容和栅格系统包裹一个
.container
容器
- 如果一行中包含了的列大于 12,多余的列所在的元素将被作为一个整体另起一行排列。
- 网格系统夸设备工作的原理:
- 嵌套:在列中添加一个或多个
row
,在row
中再添加column
,实现嵌套列。
- 列排序:
col-*-push-*
向右移动几个列; col-*-pull-*
向左移动几个列。移动列不影响其他列的布局。
表单
- 所有设置了
.form-control
类的
、
和
元素都将被默认设置宽度属性为 width: 100%;
- 将
元素和上面提到的控件包裹在.form-group
中可以获得最好的排列。
- 只有正确设置了输入框 input 的
type
类型,才能被赋予正确的样式。
- 通过
.input-lg
类似的类可以为控件设置高度。
- 为了让控件在各种表单风格中样式不出错,需要添加类名
form-control
。
- 内联表单:将表单的控件都在一行内显示,只需要在
元素中添加类名 form-inline
即可。
- 水平表单:
元素添加 .form-horizontal
类。
- 配合 Bootstrap 框架的栅格系统。
- 校验状态:
.has-warning
、.has-error
、.has-success
。
- label 标签同步相应状态:
control-label
图片
.img-rounded
:添加 border-radius:6px 来获得图片圆角。
.img-circle
:添加 border-radius:50% 来让整个图片变成圆形。
.img-thumbnail
:添加一些内边距(padding)和一个灰色的边框。
.img-responsive
:响应式图片,主要针对于响应式设计
辅助类
-
-
-
关闭按钮:
<button type="button" class="close">×button>
-
三角符号:
<span class="caret">span>
-
快速浮动:
<div class="pull-left">左边div>
<div class="pull-right">右边div>
-
清理浮动:
<div class="clearfix">div>
-
块级居中:
<div class="center-block">居中div>
-
显示和隐藏:
<div class="show">showdiv>
<div class="hidden">hiddendiv>
响应式工具
Bootstrap组件
图标菜单按钮组件
字体图标
- Bootstrap 提供了免费的 263 个小图标。
<span class="glyphicon glyphicon-trash">span>
下拉菜单
<div class="dropdown">
<button class="btn btn-default" data-toggle="dropdown"> 下拉菜单 <span class="caret">span>
button>
<ul class="dropdown-menu">
<li class="dropdown-header">网站导航li>
<li class="divider">li>
<li>
<a href="#">首页a>
li>
<li class="disabled">
<a href="#">产品a>
li>
ul>
div>
按钮组
-
按钮组常用类
class
描述
.btn-group
该class用于形成基本的按钮组。在btn-group中放置一系列带有.btn
的按钮。
.btn-toolbar
该class有助于把几组结合到一个
btn-group-lg .btn-group-sm .btn-group-xs
这些class可应用到整个按钮组的大小调整,而不需要对每个按钮进行大小调整。
btn-group-vertical
该class让一组按钮垂直堆叠显示,而不是水平堆叠显示。
-
按钮工具栏
将 按钮组 分组排列在一起。
<div class="btn-toolbar">
<div class="btn-group btn-group-lg">
<button type="button" class="btn btn-default">按钮1button>
...
div>
<div class="btn-group btn-group-sm">
...
div>
div>
-
嵌套:嵌套一个分组,须把 .btn-group 放入另一个 .btn-group 中。
-
两端对齐
- 按钮会均分铺满整个
btn-group-justified
元素。
- 使用
标签,设置两端对齐按钮组<div class="btn-group-justified">
<a type="button" class="btn btn-default">左a>
<a type="button" class="btn btn-default">右a>
div>
- 使用
标签,需要对每个按钮进行群组<div class="btn-group-justified">
<div class="btn-group">
<button type="button" class="btn btn-default"> 左 button>
div>
<div class="btn-group">
<button type="button" class="btn btn-default"> 右 button>
div>
div>
-
按钮下拉菜单:只需将下拉菜单最外层容器的dropdown
换成btn-group
即可。
-
分裂式按钮下拉菜单:分裂式按钮的左边是原始的功能,右边是显示下拉菜单的切换。
<div class="btn-group">
<button type="button" class="btn btn-danger"> 下拉菜单 button>
<button type="button" class="btn btn-danger dropdown-toggle" data-toggle="dropdown">
<span class="caret">span>
button>
<ul class="dropdown-menu">
<li>
<a href="#">首页a>
li>
...
ul>
div>
-
向上弹出式:在btn-group
后面追加dropup
。
输入框组
- 输入框组扩展自表单控件。
- 向
.form-control
添加前缀或后缀元素的步骤如下:
- 把前缀或后缀元素放在一个带有
.input-group
类的 中;
- 在相同的
内,在.input-group-addon
类的
内放置额外的内容;
- 把该
放置在
元素的前面或者后面。
- 可以通过向
.input-group
添加相对表单大小的类(比如 .input-group-lg
、input-group-sm
)来改变输入框组的大小。
- 向输入框组中添加按钮时就不能使用
input-group-addon
了,要使用input-group-btn
。<div class="input-group">
<input type="text" class="form-control">
<span class="input-group-btn">
<button type="button" class="btn btn-default"> 按钮 button>
span>
div>
导航栏
- Bootstrap 中的导航组件都依赖同一个
.nav
类。但是.nav
样式不提供默认的导航样式,必须附加另外一个样式才会有效,比如nav-tabs
、nav-pills
之类。<ul class="nav nav-tabs">
<li class="active">
<a href="#">首页a>
li>
<li>
<a href="#">资讯a>
li>
ul>
胶囊式导航
- 在
nav
类名之后添加nav-pills
类名即可。
。
- 垂直胶囊式导航:在
nav-pills
后追加nav-stacked
即可。
。
带下拉菜单的导航
- 将
当作父容器;
- 使用类名
dropdown
;
- 在
中嵌套另一个列表
。
面包屑导航(Breadcrumbs)
- Bootstrap 中的面包屑导航(Breadcrumbs)是一个简单的带有 .breadcrumb 类的无序列表。
<ul class="breadcrumb">
<li>
<a href="#">首页a>
li>
<li>
<a href="#">课程列表a>
li>
<li class="active"> Bootstrap 3 li>
ul>
- 其中的分隔符会通过 CSS(bootstrap.min.css)中下面所示的类自动被添加:
.breadcrumb > li + li:before {
color: #CCCCCC;
content: "/ ";
padding: 0 5px;
}
导航条
- 说明:导航条(navbar)中有一个背景色、而且导航条可以是纯链接(类似导航)、表单以及表单和导航一起结合等多种形式。
- 步骤:
- 首先在制作导航的列表(
)上添加类名 navbar-nav
;
- 在列表外部添加一个容器(
),并且使用类名 navbar
和 navbar-default
。
<nav class="navbar navbar-default">
<ul class="nav navbar-nav">
<li><a href="#">首页a>li>
...
ul>
nav>
带表单的导航条
<nav class="navbar navbar-inverse">
<form class="navbar-form navbar-left">
<div class="input-group">
<input type="text" class="form-control">
<span class="input-group-btn">
<button type="submit" class="btn btn-default"> 提交 button>
span>
div>
form>
nav>
导航条中的按钮、文本和链接
- 按钮:
navbar-btn
- 文本:
navbar-text
- 普通链接:
navbar-link
- 对于不包含在
中的
元素,加上 .navbar-btn
后,可以让它在导航条里垂直居中。 .navbar-btn
可被使用在
和
元素上。但是,导航和导航条组件只支持
元素。
固定导航条
<nav class="navbar navbar-default navbar-fixed-top">
分页标签徽章组件
分页
标签
- 标签可用于计数、提示或页面上其他的标记显示。
<h6>标签 <span class="label label-primary">newspan>h6>
<h5>标签 <span class="label label-success">newspan>h5>
<h4>标签 <span class="label label-info">newspan>h4>
<h3>标签 <span class="label label-warning">newspan>h3>
<h2>标签 <span class="label label-danger">newspan>h2>
<h1>标签 <span class="label label-default">newspan>h1>
徽章
- 徽章与标签相似,主要的区别在于徽章的边角更加圆滑。
<a href="#">信息 <span class="badge">10span>a>
<button class="btn btn-success"> 提交 <span class="badge">3span>
button>
<ul class="nav nav-pills">
<li class="active">
<a href="#">首页
<span class="badge">2span>a>
li>
<li>
<a href="#">资讯a>
li>
ul>
巨幕、页头、缩略图、警告框
巨幕(Jumbotron)
- 巨幕组件主要是展示网站的关键性区域。
<div class="container">
<div class="jumbotron">
<h2>W3Cschoolh2>
<p> 这是一个学习性的网站! p>
<p>
<a href="#" class="btn btn-default">更多内容a>
p>
div>
div>
- 如果需要让巨幕组件的宽度与浏览器宽度一致并且没有圆角,将
jumbotron
放到container
外面其他不变。
页头(page-header)
-
当一个网页中有多个标题且每个标题之间需要添加一定的间距时,页头这个组件就显得特别有用。
-
页头组件能够为标题标签增加适当的空间,并且与页面的其他部分形成一定的分隔。
<div class="page-header">
<h1>大标题 <small>小标题small>h1>
div>
缩略图(thumbnail)
- 通过缩略图组件扩展 Bootstrap 的 栅格系统,可以很容易地展示栅格样式的图像、视频、文本等内容。
<div class="container">
<div class="row">
<div class="col-xs-6 col-md-3 col-sm-4">
<a class="thumbnail">
<img src="img/pic.png" alt="">
a>
div>
<div class="col-xs-6 col-md-3 col-sm-4">
<div class="thumbnail">
<img src="img/pic.png" alt="">
<div class="caption">
<h3>图文并茂h3>
<p> 这是一个图片结合文字的缩略图 p>
<p>
<a href="#" class="btn btn-default">按钮a>
p>
div>
div>
div>
div>
div>
警告框(alert)
- 将任意文本和一个可选的关闭按钮组合在一起就能组成一个警告框。
<div class="alert alert-success">
Bootstrap
<button type="button" class="close" data-dismiss="alert">
<span>×span>
button>
div>
- 警告框中的链接(用
.alert-link
工具类,可以为链接设置与当前警告框相符的颜色)<div class="alert alert-success">
Bootstrap,请到官网
<a href="http://www.bootcss.com/" class="alert-link">下载a>
div>
列表组组件和面板组件
列表组
- 带徽章的列表组
<ul class="list-group">
<li class="list-group-item"> 1.这是起始 <span class="badge">10span>li>
<li class="list-group-item"> 2.这是第二条数据 li>
<li class="list-group-item"> 3.这是末尾 li>
ul>
- 列表组 – 定制内容
<a href="#" class="list-group-item">W3Cschoola>
<button class="list-group-item">...button>
<div class="list-group">
<a href="#" class="list-group-item active">
<h4>内容标题h4>
<p class="list-group-item-text"> 这里是相关内容详情! p>
a>
...
div>
面板
类
描述
实例
.panel
.panel-default
添加该类创建一个基本的面板
这里是详细内容区!
- 组合展示
<div class="panel panel-default">
<div class="panel-heading"> 表格标题 div>
<div class="panel-body">
<p> 这里是表格标题的详细内容! p>
div>
<table class="table">
<tr>
<th>1th>
<th>2th>
<th>3th>
tr>
table>
<ul class="list-group">
<li class="list-group-item">oneli>
<li class="list-group-item">twoli>
ul>
div>
进度条媒体对象和 Well 组件
进度条
- 效果
- 代码
<div class="progress">
<div class="progress-bar progress-bar-success progress-bar-striped active" style="min-width:20px;width:40%"> 40% div>
<div class="progress-bar progress-bar-default progress-bar-striped " style="min-width:20px;width:20%"> 20% div>
<div class="progress-bar progress-bar-info progress-bar-striped active" style="min-width:20px;width:15%"> 15% div>
<div class="progress-bar progress-bar-warning active" style="min-width:20px;width:10%"> 10% div>
<div class="progress-bar progress-bar-danger progress-bar-striped active" style="min-width:20px;width:1%"> 1% div>
<div class="progress-bar progress-bar-striped active" style="min-width:20px;width:5%;background-color:green;"> 5% div>
div>
- 说明
- 自备四种状态色:
progress-bar-success
、progress-bar-default
、progress-bar-info
、progress-bar-warning
、progress-bar-danger
。背景色可自行添加。
- 添加斜条纹:
progress-bar-striped
。
- 斜条纹滚动:
active
。
- 添加最小宽度是为了保证进度条上的字符可以正常展示。
- 一次写多个
progress-bar
则bar们会依次展示。
- 当进度条相加超过100时,从超过100的那个条开始不再展示。如:80%,10%,15%,2%,进度条容器中展示的只有80%和10%,因为算上15%就超过100了。
媒体对象
-
媒体对象可以包含图片、视频或音频等媒体,以达到对象和文本组合显示的样式效果。
<div class="media">
<div class="media-left">
<img src="img/media.jpg" alt="" class="media-object">
div>
<div class="media-body">
<h4 class="media-heading">标题h4>
<p>针对美国财长称将于近期来华磋商消息,中国商务部新闻发言人高峰16日在新闻发布会上称,中方不掌握美方来华计划 p>
div>
<div class="media-body">
<h4 class="media-heading">标题h4>
<p>针对美国财长称将于近期来华磋商消息,中国商务部新闻发言人高峰16日在新闻发布会上称,中方不掌握美方来华计划 p>
div>
<div class="media-right">
<img src="img/media.jpg" alt="" class="media-object">
div>
div>
-
列表展示只需在最层加上
改成
即可。
Well
- Well 组件可以实现简单的 嵌入 效果。
well-lg
或 well-sm
来改变 Well 的pading
。
Bootstrap
。
Bootstrap插件
概览
插件引入
- 单个引入:使用 Bootstrap 提供的单个
*.js
文件。
- 一次性全部引入:使用
bootstrap.js
或压缩版的bootstrap.min.js
。
- 一些插件和 CSS 组件 依赖 于其他插件。如果单独引用插件,请确保在文档中检查插件之间的依赖关系。
- jQuery 必须在所有插件之前引入页面。
data属性
-
可以仅仅通过 data 属性 API 就能使用所有的 Bootstrap 插件。
-
// 关闭 data 属性 API 的方法,即解除以 data-api 为命名空间并绑定在文档上的事件。
$(document).off('.data-api');
//关闭某个特定的插件
$(document).off('.alert.data-api');
编程方式的 API
- Bootstrap 插件中所有公开的 API 都是支持单独或链式调用方式,并且返回其所操作的元素集合。
$(".btn.danger").button("toggle").addClass("fat")
- 所有的方法都可以接受一个可选的选项对象作为参数,或者一个代表特定方法的字符串,或者不带任何参数(这种情况下,将会初始化插件为默认行为)
// 初始化为默认行为
$("#myModal").modal()
// 初始化为不支持键盘
$("#myModal").modal({ keyboard: false })
// 初始化并立即调用 show
$("#myModal").modal('show')
- 每个插件在 Constructor 属性上也暴露了其原始的构造函数:$.fn.popover.Constructor。如果你想获取某个特定插件的实例,可以直接通过页面元素获取:
$('[rel=popover]').data('popover').
避免命名空间冲突
- 通过调用插件的 .noConflict 方法恢复其原始值。
// 返回 $.fn.button 之前所赋的值
var bootstrapButton = $.fn.button.noConflict();
// 为 $().bootstrapBtn 赋予 Bootstrap 功能
$.fn.bootstrapBtn = bootstrapButton
事件
- Bootstrap 为大多数插件的独特行为提供了自定义事件。
- 不定式:表示其在事件开始时被触发。例如: show
- 过去式:在动作执行完毕之后被触发。例如 shown。
$('#myModal').on('show.bs.modal', function (e) {
if (!data) return e.preventDefault() // 阻止模态框的展示
})
- 所有以不定式动词命名的事件都提供了
preventDefault
功能,这使得在事件开始执行前可以将其停止。
模态框
基本结构
- 使用模态框的弹窗组件需要 三层 div 容器元素,分别为
modal
(模态声明层) 、dialog
(窗口声明层) 、content
(内容层) 。
- 在内容层里面,还有三层,分别为
header
(头部)、body
(主体)、footer
(注脚)。
-
<div class="modal show fade">
<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">
<button type="button" class="btn btn-default"> 注册 button>
<button type="button" class="btn btn-primary"> 登录 button>
div>
div>
div>
div>
基本使用
属性名称
类型
默认值
描述
data-toggle
字符
modal
用来控制模态弹出框的展示
data-target
字符
用户自定义
用来定义要触发的模态弹出框是哪一个。
值可以是“div.modal”元素独有的类名或者id名
data-backdrop
布尔值
true
是否包含一个背景div元素,如果为真,点击背景关闭弹窗,如果为假 则没有背景。
如果取值为static
则会展示背景,但是点击背景不会关闭弹窗。
data-keyboard
布尔值
true
是否可以按键盘的ESC键来关闭弹窗。true:可以;false:不可以。
data-show
布尔值
ture
初始化时弹出窗是否展示。与在“div.modal
"中直接添加类名”show
“效果一样。
触发方式
- 声明式触发方法:用 data-toggle 和 data-target 来控制模态框。
<button type="button" data-toggle="modal" data-target="#mymodal" class="btn btn-primary">
点击我会弹出模态弹出窗
button>
<div class="modal fade" id="mymodal">
<div class="modal-dialog">
<div class="modal-content">
div>
div>
div>
- javaScript式:监听按钮点击事件,调用命令使弹窗展示。
$("#btn-show").on("click",()=>{
$("#myModal").modal("show");
});
自带事件
事件类型
描述
show.bs.modal
在show方法调用时立即触发(尚未显示前);如果单击了一个元素,该元素将作为事件的 relatedTarget
属性
shown.bs.modal
该事件在弹出框完全显示(并且动画完成)之后触发;如果单击了一个元素,该元素将作为事件的 relatedTarget
属性
hide.bs.modal
在hide方法调用时立即触发(还未隐藏)。
hedden.bs.modal
该事件在弹出框完全隐藏(并且动画完成)之后触发。
示例:
$('#myModal').on('hidden.bs.modal', function (e) {
// 处理代码...
})
下拉菜单和滚动监听
下拉菜单
- 触发方式:
-
和常规下载菜单组件类似
<button class="btn btn-primary" id="btn" data-toggle="dropdown" data-target="#dropdown">button>
<div class="dropdown" id="dropdown">
<button class="btn btn-primary" data-toggle="dropdown"> 下拉菜单 <span class="caret">span>
button>
<ul class="dropdown-menu">
<li><a href="#">首页a>li>
...
ul>
div>
-
javascript式(不推荐)
$('#btn').dropdown();
$('#btn').dropdown('toggle');
注:无论是通过 JavaScript 调用下拉列表还是使用 data-api,都需要在下拉列表的触发元素上显示 data-toggle =“dropdown”
。
滚动监听(Scrollspy)
-
data属性调用
<nav id="nav" class="navbar navbar-default">
<ul class="nav navbar-nav">
<li>
<a href="#html5">HTML5a>
li>
<li>
<a href="#bootstrap">Bootstrapa>
li>
ul>
nav>
<div data-offset="0" data-target="#nav" data-spy="scroll" style="height: 200px; overflow: auto; position: relative;padding: 0 10px;">
<h4 id="html5">HTML5h4>
<h4 id="bootstrap">bootstraph4>
....
div>
-
JavaScript调用
<nav id="navbar-menu" class="navbar navbar-default">
...
nav>
<div class="scrollspy" id="scrollspy">
...
div>
$('#scrollspy').scrollspy({
offset : 0,
target: "#navbar-menu",
});
-
无论何种实现方式,滚动监听都需要被监听的组件是 position: relative;
即 相对定位 方式。
-
方法:当滚动监控所作用的 DOM 有增加或删除页面元素的操作时,需要调用下面的refresh方法
$(function(){
$("[data-spy='scroll']").each(function(){
var $spy=$(this).scrollspy("refresh");
})
})
注:这个方法必须使用 data-*
声明式。
-
事件
activate.bs.scrollspy
:每当一个新条目被激活后都将有滚动监听触发此事件。
$('#nav').on('activate.bs.scrollspy', function() {
...
});
标签页
页面结构
- 菜单项
<ul class="nav nav-tabs">
<li class="active">
<a href="#bootstrap" data-toggle="tab">bootstrapa>
li>
...
ul>
- 内容面板
<div class="tab-content">
<div class="tab-pane" id="bootstrap">
<p>bootstrap ... p>
div>
...
div>
- 标签页中链接的锚点要与对应的面板内容容器的ID相匹配。
调用方式
- data属性
页面结构中就是data属性调用。
- JavaScript调用
$('#nav a').on('click', function(e) {
e.preventDefault();
$(this).tab('show');
})
其他用法
-
淡入淡出:添加 .fade
到每个 .tab-pane
后面。最初的 默认显示 的内容面板一定要加上 in
类名,不然其内容用户无法看到。
-
胶囊式标签页:直接将nav-tabs
换成 nav-pills
即可。
-
事件
事件名
描述
show.bs.tab
在调用tab事件时触发
shown.bs.tab
在显示整个标签时触发
$('#nav a').on('show.bs.tab', function() {
alert('调用 tab 时触发!');
});
$('a[data-toggle="tab"]').on('show.bs.tab', function (e) {
e.target // 激活的标签页
e.relatedTarget // 前一个激活的标签页
})
工具提示(Tooltips)
- 当鼠标悬浮于目标元素时进行提示,类似于原始HTML元素自带的
title
属性。
结构
触发方式
- 此插件与之前的插件触发方式不同,它不直接通过自定义的属性
data-*
来触发,必须 得依赖于 JavaScript 的代码触发。//启动页面上所有的工具提示
$(function () {
$('[data-toggle="tooltip"]').tooltip()
})
//启动某一个工具提示,单独设置提示内容
$(function(){
$('#myTooltip').tooltip({
title:"超文本标识符"
});
});
注:如果元素中使用的title
属性值作为提示文本,且没有在javascript中进行触发,就会出现原始的工具提示。
设置工具提示参数
属性名称
类型
默认值
描述
original-title
字符串
“”
提示框的提示信息
title
字符串
“”
提示框的提示信息
placement
string / function
top
提示框的显示位置,可选项:top / right / bottom / left / auto。如果使用使用”auto“,将会再次调整,比如,如果声明”auto left“,提示框提示信息将尽量显示在左边,实在不行就会显示在右边。
animation
布尔值
true
在提示框上运用一个动画效果
selector
字符串
false
如果声明了 data-selector ,在触发该selector时才显示提示框
html
布尔值
false
将HTML代码作为提示框的提示信息,如果是false,jQuery将使用text方法将HTML代码转换为文本作为提示框信息。
trigger
字符串
hoverfocus
如何处罚提示框,可选值:click / hover / focus / manual
。如果传入多个触发器,需要使用空格隔开,比如 hover focus
delay
number / object
0
延迟多久才显示或关闭提示框,单位毫秒,不适用于manual触发器。如果传入是数字,则说明show / hide都延迟这个毫秒数。如果传入的是对象的话,结构是{show:500,hide:100}
container
string / false
false
将提示框附加到特定的元素上,比如:container:‘body’
template
字符串
提示语的HTML模板,可以自定义。默认值:
viewport
string / object
确保提升框元素的边缘内,如viewport:'#viewport'
或者 {selector:'#viewport', padding:0}
方法
$('#element').tooltip('show'); //显示元素
$('#element').tooltip('hide'); //隐藏元素
$('#element').tooltip('toggle'); //切换显示/隐藏元素
$('#element').tooltip('destroy');//隐藏并销毁元素
事件
事件类型
描述
show.bs.tooltip
在show方法调用时立即触发
shown.bs.tooltip
在提示框完全显示给用户之后触发
hide.bs.tooltip
在hide方法调用时立即触发
hidden.bs.tooltip
在提示框完全隐藏之后触发
$('#element').on('show.bs.tooltip', function() {
alert('调用 show 时触发!');
});
弹出框(Popover)
- 弹出框(Popover)和提示工具(tooltip)相比,就多了一个 data-content 属性,我们可以使用 data-content 来定义弹出框中的内容。
结构和调用
<button class="btn btn-danger" type="button" data-toggle="popover" title="弹出框" data-content="这是一个弹出框插件"> 点我 button>
//全部激活
$('button').popover();
//设定并激活某一个
$(function(){
$('[data-toggle="popover"]').popover({
title:"我是弹出框的标题",
content:"我是弹出框的内容",
placement:"right"
});
});
注:**Bootstrap 框架中触发弹出框和提示工具一样,不能直接通过 HTML 的自定义 data 属性来触发,需要依赖于JavaScript脚本**
方法和事件
$('#element').popover('show'); //显示元素
$('#element').popover('hide'); //隐藏元素
$('#element').popover('toggle'); //切换显示/隐藏元素
$('#element').popover('destroy');//隐藏并销毁元素
事件名
描述
show.bs.popover
在调用show方法时触发
shown.bs.popover
弹窗完全显示后触发
hide.bs.popoover
在调用hide方法时触发
hidden.bs.popover
弹窗完全隐藏后触发
弹出框和提示工具的异同
- 同:弹出框中 HTML 自定义的 data 属性和提示框中的自定义的 data 属性基本相同,只不过在其基础上增加了一个 data-content 属性,用来设置弹出框的内容。
- 异:
- 提示工具(tooltip)的默认触发事件是 hover 和 focus,而弹出框(popover)是 click。
- 提示工具(tooltip)只有一个内容(title),而弹出框不仅可以设置标题(title)还可以设置内容(content)
警告框
- 警告框插件是在警告框组件的基础上添加单击 X 号能关闭警告框的功能。
结构
<div class="alert " role="alert">
<button class="close" type="button" >×button>
恭喜恭喜!
div>
触发方式
-
声明式:来触发警告框,需要在关闭按钮上设置自定义属性·data-dismiss="alert"
。
-
javascript:
$('.close').on('click', function() {
//关闭所有的警告框。
$('.alert').alert('close');
})
//关闭某一个警告框
$("#myclose").on("click",function(){
$(this).alert("close");
});
事件
事件类型
描述
close.bs.alert
当close方法被调用后立即触发
closed.bs.alert
当警告框被完全关闭后触发
淡入淡出
-
我们还可以添加淡入淡出效果,添加 .fade 和 .in 类即可。如下:
<div class="alert alert-warning fade in" role="alert">
<button class="close" type="button" >×button>
恭喜恭喜!
div>
按钮
单个切换/加载状态
- 单个切换:使用
data-toggle
属性可以激活按钮的 行为状态,实现在激活和未激活之间进行状态切换。<button class="btn btn-primary" data-toggle="button" >单个切换button>
- 加载状态:通过javascript实现按钮加载态的改变,添加
data-loading-text="Loading..."
可以为按钮设置正在加载时的文本。默认值“loading…"<button id="myButton" type="button" data-loading-text="Loading..." class="btn btn-primary"> 加载 button>
$('#myButton').on('click', function() {
var btn = $(this).button('loading');
setTimeout(function() {
btn.button('reset');
}, 1000);
});
- Button 插件中的 button 方法中有三个参数:
- toggle:切换按压状态
- reset:重置按钮状态
- string:使用该方法,重置按钮状态,并添加新的内容(比如 loading、complete)
单选/复选
- 单选按钮:通过一组按钮来实现单选择操作。创建单选按钮组需向
btn-group
添加 data 属性data-toggle="buttons"
来添加单选按钮组的切换。<div class="btn-group" data-toggle="buttons">
<label for="" class="btn btn-default active">
<input type="radio" name="sex" checked>男 label>
<label for="" class="btn btn-default ">
<input type="radio" name="sex">女 label>
div>
- 复选按钮:通过一组按钮来实现多选择操作。 创建复选按钮也是通过在按钮组上自定义
data-toggle="buttons"
来实现,唯一不同的是,需将type="radio"
换成type="checkbox"
,如下所示:<div class="btn-group" data-toggle="buttons">
<label for="" class="btn btn-primary active">
<input type="checkbox" name="fa" autocomplete="off" checked> 音乐
label>
<label for="" class="btn btn-primary">
<input type="checkbox" name="fa" autocomplete="off" checked> 美术
label>
<label for="" class="btn btn-primary">
<input type="checkbox" name="fa" autocomplete="off" checked> 体育
label>
...
div>
折叠(Collapse)
结构
- 点击区添加
data-toggle="collapse"
和 data-target="内容区标识"
;内容区添加.collapse
和 标识
比如ID<button class="btn btn-primary" data-toggle="collapse" data-target="#content"> w3cschoolbutton>
<div class="collapse" id="content">
<div class="well">
w3cschool主要为初学者技术的人员提供在线学习教程和日常技术资料查询服务。
div>
div>
手风琴折叠
-
每个标题对应一个内容,在 Bootstrap 框架中将这两个部分组合起来称为一个 panel
面板,将多个面板组合在一起,就是一个面板组 panel-group
,也就是手风琴的结构。
-
data-parent:默认值为false
,设置需指定父元素选择器;指定该区域只展示一个,选择一个展示其他自动隐藏。取值与手风琴面板容器的标识符相匹配。
-
data-toggle:如果前面加data-*
,设置collapse
表示实现折叠;如果JavaScript中的属性,默认为true,实现反装。
<div class="panel-group" id="accordion">
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title"><a href="#collapseOne" data-toggle="collapse" data-parent="#accordion">点击我进行展示,再点击我进行折叠,第一部分a>h4>
div>
<div id="collapseOne" class="panel-collapse collapse in">
<div class="panel-body"> 这里是第一部分。 div>
div>
div>
......
div>
方法和事件
-
collapse 方法还提供了三个参数:hide、show、toggle。
$('#collapseOne').collapse('hide');
$('#collapseTwo').collapse('show');
$('button').on('click', function() {
$('#collapseOne').collapse('toggle');
});
-
Collapse 插件中事件有四种:
事件类型
描述
show.bs.collapse
在show方法调用时立即触发
shown.bs.collapse
折叠区完全展示出来触发
hide.bs.collapse
在hide方法调用时触发
hidden.bs.collapse
折叠区完全隐藏时触发
$('#collapseOne').on('show.bs.collapse', function() {
alert('当 show 方法调用时触发');
});
轮播(Carouse)
-
结构
<div id="myCarousel" class="carousel slide">
<ol class="carousel-indicators">
<li data-target="#myCarousel" data-slide-to="0" class="active">li>
<li data-target="#myCarousel" data-slide-to="1">li>
<li data-target="#myCarousel" data-slide-to="2">li>
ol>
<div class="carousel-inner">
<div class="item active">
<img src="https://7n.w3cschool.cn/attachments/knowledge/201904/86459.png" alt="第一张">
div>
<div class="item">
<img src="https://7n.w3cschool.cn/attachments/knowledge/201812/12495.png" alt="第二张">
div>
<div class="item">
<img src="https://7n.w3cschool.cn/attachments/knowledge/201901/42502.png" alt="第三张">
div>
div>
<a href="#myCarousel" data-slide="prev" class="carousel-control left">‹a>
<a href="#myCarousel" data-slide="next" class="carousel-control right">›a>
div>
<script>
$('#myCarousel').carousel({
interval : 2000, //秒轮播时间间隔为2秒
pause : 'hover', //设置暂停按钮的事件
wrap : false,//只播一次
});
script>
注:控制器的样式需要自己写,Bootstrap自带的样式很丑。
-
触发轮播图的播放
-
声明式:声明式方法是通过定义 data 属性来实现,data 属性可以很容易地控制轮播的位置。
data-slide
: 接受关键字 prev 或 next,用来改变幻灯片相对于当前位置的位置;
data-slide-to
:来向轮播底部创建一个原始滑动索引, data-slide-to="2"
表示将把滑动块移动到一个特定的索引,索引从 0 开始计数。
data-ride="carousel"
:属性用户标记轮播在页面加载时开始动画播放。
data-interval
:默认值5000
,幻灯片的等待时间(毫秒)。如果为false
幻灯片不会自动播放。
data-pause
:默认鼠标停留在幻灯片区域(hover
)就暂停轮播,鼠标离开就开始轮播。
data-warp
:默认为true
,是否支持循环。
-
javascript触发式:直接使用键值对方法,并去掉 data-
。
$('#myCarousel').carousel({
interval : 2000, //秒轮播时间间隔为2秒
pause : 'hover', //设置暂停按钮的事件
wrap : false,//只播一次
});
-
方法和事件
方法名称
描述
cycle
循环各帧,默认从左到右
pause
暂定轮播
number
轮到到指定的图片,角标从“0”开始
prev
循环轮播到上一个图片
next
循环轮播到下一个图片
$('button').on('click', function() { //点击后,自动播放
$('#myCarousel').carousel('cycle'); //其他雷同
});
事件名称
描述
slide.bs.carousel
当调用slide方法时立即触发该事件
slid.bscarousel
当轮播完一个图片时调用该事件
$('#myCarousel').on('slide.bs.carousel', function() {
alert('当调用 slide 实例方式时立即触发');
});
$('#myCarousel').on('slid.bs.carousel', function() {
alert('当轮播完成一个幻灯片触发');
});
附加导航(Affix)
- 附加导航:粘贴在屏幕某处实现锚点功能。
- 常见效果:顶部固定、侧边栏固定、底部固定。
声明式触发
<body data-spy="scroll" data-target="#myScrollspy">
<div data-spy="affix" data-offset="90">affix元素div>
<div data-spy="affix" data-offset-top="90" data-offset-bottom="150">affix元素div>
使用声明式,就算设置了 data-offset-top 的值也会失效,需要在样式中给 affix 设置一个top值,与 data-offset-top 值相等。data-offset-bottom一样。
ul .nav-pills {
width: 200px;
}
ul .nav-pills .affix {
top: 40px;
}
/* 我们默认使用的是 top,当然也可以默认居底 bottom。这个定位方式是直接通过 CSS定位的。
设置成 bottom */
ul .nav-tabs .affix-bottom {
bottom: 30px;
}
javascript触发
$('#myAffix').affix({
offset : {
top : 150 }
})
事件
事件名称
描述
affix.bs.affix
在定位结束之前立即触发
affixed.bs.affix
在定位结束之后立即触发
affix-top.bs.affix
在定位应用affixed-top效果之前触发
affixed-top.bs.affix
在定位应用affixed-top效果之后触发
affix-bottom.bs.affix
在定位应用affixed-bottom效果之前触发
affixed-bottom.bs.affix
在定位应用affixed-bottom效果之后触发
$('#myAffix').on('affixed-top.bs.affix', function() {
alert('触发!');
});
你可能感兴趣的:(系统学习,bootstrap)