Bootstrap
布局容器和栅格网格系统
1、布局容器
1、container类:用于固定并支持响应式布局的容器(使用比较多)
1 2 3 4
| <div class="container" style="height: 200px;background-color: deepskyblue; text-align: center"> 1、container类:用于固定并支持响应式布局的容器 </div>
|
2、container-fluid类:用于100%宽度,占据全部视口(viewport)的容器
1 2 3 4
| <div class="container-fluid" style="height: 200px;background-color: deepskyblue; text-align: center"> 2、container-fluid类:用于100%宽度,占据全部视口(viewport)的容器 </div>
|
2、栅格网格系统
1、 Bootstrap 提供了一套响应式、移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列。栅格系统用于通过一系列的行(row)与列(column)的组合来创建页面布局,你的内容就可以放入这些创建好的布局中。
2、网格系统的实现原理非常简单,仅仅通过定义容器大小,平分12份(也有平分24份或32份),但12份是最常见的,再调整内外边距,最后结合媒体查询,就制作出了强大的响应式网格系统。Bootstrap框架中的网格系统就是将容器平分成12份
3、注意: 网格系统必须使用到css
4、 container、row 、xs (xsmall phones),sm (small tablets),md (middle desktops),lg (larger desktops) 即: 超小屏(自动),小屏(750px),中屏(970px)和大屏(1170px)
5、 数据行(.row)必须包含在容器(.container)中,以便为其赋予合适的对齐方式和内距(padding)。
6、 在行(.row)中可以添加列(.column), 只有列(column)才可以作为行容器(.row)的直接子元素,但列数之和不能超过平分的总列数,比如12。如果大于12,则自动换到下一行。
7、 具体内容应当放置在列容器(column)之内
栅格参数
列组合
列组合简单理解就是更改数字来合并列(原则:列总和数不能超12,大于12,则自动换到下一行。),有点类似于表格的colspan属性。
一个row里面的列总数不能大于12
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1"> <title>栅格网格系统</title>
<link rel="stylesheet" href="../resource/bootstrap/css/bootstrap.css">
<style> div { background-color : white; border : 1px solid deepskyblue; text-align : center; } </style> </head> <body>
<div class="container"> <div class="row">
<div class="col-md-4">4列</div> <div class="col-md-8">8列</div> </div> </div>
</body> </html>
|
列偏移
如果我们不希望相邻的两个列紧靠在一起,但又不想使用margin或者其他的技术手段来。这个时候就可以使用列偏移(offset)功能来实现。使用列偏移也非常简单,只需要在列元素上添加类名”col-md-offset-*”(其中星号代表要偏移的列组合数),那么具有这个类名的列就会向右偏移。例如,你在列元素上添加”col-md-offset-8”,表示该列向右移动8个列的宽度(要保证列与偏移列的总数不超过12,不然会致列断行|换行显示)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
<div class="container"> <div class="row"> <div class="row"> <div class="col-md-2">2列</div> <div class="col-md-4 col-xs-offset-1">4列</div> <div class="col-md-4 col-xs-offset-1">4列</div> </div> </div> </div>
|
列排序
列排序其实就是改变列的方向,就是改变左右浮动,并且设置浮动的距离。在Bootstrap框架的网格系统中是通过添加类名 col-md-push- 和 col-md-pull- (其中星号代表移动的列组合数)。往前pull,往后push。
列排序就算超过了父元素的宽度也不会换行,他会直接超出父元素的范围
1 2 3 4 5 6 7 8 9 10
| <div class="container"> <div class="row"> <h2>列排序</h2> <div class="col-md-2 ">2列</div> <div class="col-md-4 col-lg-pull-1">4列</div> <div class="col-md-4 col-lg-push-2">4列</div> </div> </div>
|
列嵌套
Bootstrap框架的网格系统还支持列的嵌套。你可以在一个列中添加一个或者多个行(row)容器,然后在这个行容器中插入列.
1 2 3 4 5 6 7 8 9 10 11 12 13
| <div class="container"> <div class="row"> <h2>列嵌套</h2> <div class="col-md-6 "> <div class="row"> <div class="col-md-4">4</div> <div class="col-md-4 ">4</div> <div class="col-md-4 ">4</div> </div> </div> <div class="col-md-6 ">6列</div> </div> </div>
|
常用样式
排版
标题
Bootstrap和普通的HTML页面一样,定义标题都是使用标签,定义标题标签都是使用
—-,只不过Bootstrap覆盖了默认的样式,使其在所有浏览器中的效果都一样
为了让非标题标签的和标题标签使用相同的样式,还特意定义了h1—-h6里六个类名,同时使用乐意紧跟着一行小的副标题或使用 .small
1 2 3 4 5 6 7
| <h1>标题1 <small>副标题</small> </h1> <h2>标题2 <span class="small">我是副标题,加了small类属性,有了副标题的效果</span> </h2> <div class="h1">我是div,使用了Bootstrap有了h1标签的效果</div>
|
段落
段落是排版中另一个重要元素之一。
通过.lead 来突出强调内容(其作用就是增大文本字号,加粗文本,而且对行高和margin也做相应的处理。可以使用以下标签给文本做突出样式处理:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
<p class="lead"> <b>通过.lead</b> 来突出强调内容( <small>其作用就是增大文本字号,</small> <strong>加粗文本</strong>, <i>而且</i> 对行高和 <em>margin</em> 也做相应的处理。可以使用以下标签给文本做突出样式处理: </p>
|
强调
定义了一套类名,这里称其为强调类名,这些强调类都是通过字体颜色来表示强调,具本说明如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
<div class="text-muted">提示效果</div> <div class="text-primary">主要效果</div> <div class="text-success">成功效果</div> <div class="text-info">信息效果</div> <div class="text-warning">警告效果</div> <div class="text-danger">危险效果</div>
|
对齐效果
1、 在CSS中常常使用text-align来实现文本的对齐风格的设置。
2、为了简化操作,方便使用,Bootstrap通过定义四个类名来控制文本的对齐风格:.text-left:左对齐 .text-center:居中对齐 .text-right:右对齐 .text-justify:两端对齐。
3、 其中主要有四种风格:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
<p class="text-left">我居左</p> <p class="text-center">我居中</p> <p class="text-right">我居右</p> <p class="text-justify"> 网格系统的实现原理非常简单,仅仅是通过定义容器大小,平分12份(也有平分成24份或32份,但12份是最常见的), 再调整内外边距,最后结合媒体查询,就制作出了强大的响应式网格系统。Bootstrap框架中的网格系统就是将容器平分成12份 </p>
|
列表
在HTML中,列表有如下三种
- 无序列表:( )
- 有序列表:(
- ...
)
- 定义列表:(
- ...
- ...
)
==去点列表==
1 2 3 4
| <ul class="list-unstyled"> <li>无序项目列表一</li> <li>无序项目列表二</li> </ul>
|
==内联列表==
class=“list-inline”,把垂直列表换成水平列表,而且去掉项目符号(编号),保持水平显示。也可以说内联列表就是为制作水平导航而生。
1 2 3 4 5
| <ul class="list-inline"> <li>首页</li> <li>java学院</li> <li>在线课堂</li> </ul>
|
==定义列表==
在原有的基础加入了一些样式,使用样式 class=“dl-horizontal” 制作水平定义列表 : 当标题宽度超过160px时,将会显示三个省略号。
1 2 3 4 5 6 7 8 9 10 11 12
| <dl> <dt>HTML</dt> <dd>超文本标记语言</dd> <dt>CSS</dt> <dd>层叠样式表是一种样式表语言</dd> </dl> <dl class="dl-horizontal"> <dt>HTML 超文本标记语言</dt> <dd>HTML称为超文本标记语言,是一种标识性的语言。</dd> <dt>测试标题不能超过160px的宽度,否则2个点</dt> <dd>我在写一个水平定义列表的效果,我在写一个水平定义列表的效果。</dd> </dl>
|
代码
一般在个人博客上使用的较为频繁,用于显示代码的风格。在Bootstrap主要提供了三种代码风格:
(1)使用<code></code>
来显示单行内联代码
(2)使用<pre></pre>
来显示多行代码
样式: 样式:pre-scrollable (height,max-height高度固定,为340px,超过存在滚动条)
(3)使用<kbd></kbd>
来显示用户输入代码,如快捷键
==单行代码==
1 2
| <code>public void main(){ ... }</code>
|
==多行代码块==
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| <pre> public String testFunction() { System.out.println("控制器中的方法执行了"); return "hello"; } </pre>
<pre> <ul> <li>测试实体符</li> </ul> </pre>
<pre class="pre-scrollable"> ...........<br/> ...........<br/> ...........<br/> ...........<br/> ...........<br/> ...........<br/> ...........<br/> ...........<br/> ...........<br/> ...........<br/> ...........<br/> ...........<br/> </pre>
|
==快捷键==
1 2
| 保存使用:<kbd>ctrl</kbd>+<kbd>s</kbd>
|
表格
==表格样式==
Bootstrap为表格提供了1种基础样式和4种附加样式以及1个支持响应式的表格。在使用Bootstrap的表格过程中,只需要添加对应的类名就可以得到不同的表格风格:
==基础样式==
1、基础表格
==附加样式==
1
| <table class="table table-striped table-bordered table-hover table-condensed"></table>
|
==<tr>、<th>、<td>
样式==
提供了五种不同的类名,每种类名控制了行的不同背景颜色
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| <table class="table table-striped table-bordered table-hover table-condensed"> <tr class="active"> <th >JavaSE</th> <th>数据库</th> <th>JavaScript</th> </tr> <tr class="success"> <td>面向对象</td> <td>oracle</td> <td>json</td> </tr> <tr class="info"> <td>数组</td> <td>mysql</td> <td>ajax</td> </tr> <tr class="warning"> <td>Spring</td> <td>Habitat</td> <td>SpringMVC</td> </tr> <tr class="danger"> <td>SpringMVC</td> <td>MySqL-plus</td> <td>Node.js</td> </tr> </table>
|
表单
表单主要功能是用来与用户做交流的一个网页控件,良好的表单设计能够让网页与用户更好的沟通。表单中常见的元素主要包括:文本输入框、下拉选择框、单选按钮、复选按钮、文本域和按钮等。
表单控件
输入框 text
1 2 3 4 5 6 7 8 9 10 11
| <div class="row"> <div class="col-md-4"></div> <div class="col-md-4"><input type="text" class="form-control"></div> <div class="col-md-4"></div> </div>
<div class="row"> <div class="col-md-4"></div> <div class="col-md-4"><input type="text" class="form-control input-sm"></div> <div class="col-md-4"></div> </div>
|
下拉选择框 select
多行选择设置:multiple=“multiple”
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| <div class="row"> <div class="col-md-2"></div> <div class="col-md-4"> <label> 请选择城市: <select class="form-control"> <option>上海</option> <option>长沙</option> <option>北京</option> <option></option> </select> </label> </div> <div class="col-md-4"> <label> 请选择城市: <select class="form-control" multiple="multiple"> <option>上海</option> <option>长沙</option> <option>北京</option> <option></option> </select> </label> </div> <div class="col-md-2"></div> </div>
|
文本域 textarea
1 2 3 4 5 6 7
| <div class="row"> <div class="col-md-4"></div> <div class="col-md-4"> <textarea class="form-control"></textarea> </div> <div class="col-md-4"></div> </div>
|
复选框 checkbox
垂直显示: .checkbox
水平显示: .checkbox-inline
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| <div class="row"> <div class="col-md-4"></div> <div class="col-md-4"> <div> <div class="checkbox"> <label><input type="checkbox">游戏</label> </div> <div class="checkbox"> <label><input type="checkbox">学习</label> </div> </div> <hr/> <div> <label class="checkbox-inline"> <input type="checkbox">游戏 </label> <label class="checkbox-inline"> <input type="checkbox">学习 </label> </div> </div> <div class="col-md-4"></div>
</div>
|
复选框 checkbox
垂直显示:.checkbox
水平显示: .checkbox-inline
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| <div class="row"> <div class="col-md-4"></div> <div class="col-md-4"> <div> <div class="radio"> <label><input type="radio">男</label> </div> <div class="radio"> <label><input type="radio">女</label> </div> </div> <hr/> <div> <label class="radio-inline"> <input type="radio">男 </label> <label class="radio-inline"> <input type="radio">女 </label> </div> </div> <div class="col-md-4"></div> </div>
|
按钮
1、使用 button 实现
1 2 3 4 5 6 7 8
| <button class="btn">按钮</button> <button class="btn btn-danger">按钮</button> <button class="btn btn-primary">按钮</button> <button class="btn btn-info">按钮</button> <button class="btn btn-success">按钮</button> <button class="btn btn-default">按钮</button> <button class="btn btn-warning">按钮</button> <button class="btn btn-link">按钮</button>
|
2、多标签支持:使 a标签 div标签 等制作按钮
1 2 3
| <a href="#" class="btn btn-info">a标签按钮</a> <span class="btn btn-success">span标签按钮</span> <div class="btn btn-warning">div标签按钮</div>
|
3、按钮大小
使用 .btn-lg、.btn-sm 或 .btn-xs 就可以获得不同尺寸的按钮
1 2 3 4
| <button class="btn btn-primary btn-xs">超小按钮.btn-xs</button> <button class="btn btn-primary btn-sm">小型按钮.btn-sm</button> <button class="btn btn-primary">正常按钮</button> <button class="btn btn-primary btn-lg">大型按钮.btn-lg</button>
|
4、按钮禁用
- 方法1:在标签中添加disabled属性==样式也改变,按钮点击也没有作用了==
- 方法2:在元素标签中添加类名”disabled” ==该禁用只是样式上禁用,实际按钮还能使用==
- 在class属性中添加disabled只是样式上禁用了,并不是真正的禁用了此按钮!
1 2 3 4 5 6 7
| <button class="btn btn-danger" disabled="disabled" onclick="a()">禁用按钮</button> <button class="btn btn-danger disabled" onclick="a()">禁用按钮</button> <script> function a(){ alert("123") } </script>
|
表单布局
基本的表单结构是 Bootstrap 自带的,个别的表单控件自动接收一些全局样式。
下面列出了创建基本表单的步骤:
- 向父
<from>
元素添加 role=“form”。
- 把标签和控件放在一个带有 class.form-group的
<div>
中。这是获取最佳间距所必需的。
- 向所有的文本元素
<input>、<textarea>和<select>
添加 class =“form-control” 。
水平表单
同一行显示form-horizontal
配合Bootstrap框架的网格系统
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| <div class="container"> <form action="" class="form-horizontal " role="form">
<div class="form-group"> <h2 class="text-center">用户表信息</h2> <label for="username" class="control-label col-md-2">用户名:</label> <div class="col-md-8"> <input id="username" placeholder="请输入用户名" class="form-control"> </div> </div>
<div class="form-group"> <label for="password" class="control-label col-md-2">密码:</label> <div class="col-md-8"> <input id="password" placeholder="请输入用户名" class="form-control"> </div> </div>
<div class="form-group"> <label class="control-label col-md-2">兴趣爱好:</label> <div class="col-md-8"> <label class="checkbox-inline"> <input type="checkbox">游戏 </label> <label class="checkbox-inline"> <input type="checkbox">学习 </label> </div> </div>
<div class="form-group"> <label class="control-label col-md-2">请选择城市:</label> <div class="col-md-8"> <select class="form-control"> <option>上海</option> <option>长沙</option> <option>北京</option> <option></option> </select> </div> </div>
<div class="form-group"> <label class="control-label col-md-2">简介:</label> <div class="col-md-8"> <textarea class="form-control"></textarea> </div> </div>
<div class="form-group"> <div class="col-md-8 col-xs-offset-5"> <input type="submit" class="btn btn-primary"> </div> </div>
</form> </div>
|
内联表单
将表单的控件都在一行内显示form-inline
注意label不会显示,存在的意义:如果没有为输入控件设置label标签,屏幕阅读器将无法正确识别。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <div class="container"> <div class="col-md-10 col-xs-offset-2">
<form class="form-inline"> <div class="form-group"> <label>邮箱</label> <input type="email" class="form-control" placeholder="请输入邮箱"/> </div> <div class="form-group"> <label>密码</label> <input type="pwd" class="form-control" placeholder="请输入密码"/> </div> <div class="form-group checkbox"> <label><input type="checkbox"/>记住密码</label> </div> <div class="form-group"> <button class="btn btn-primary ">提交</button> </div> </form> </div> </div>
|
缩略图
缩略图在电商类的网站很常见,最常用的地方就是产品列表页面。缩略图的实现是配合网格系统一起使用。同时还可以让缩略图配合标题、描述内容,按钮等。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <div class="container"> <div class="row"> <div class="col-md-3"> <div class="thumbnail"> <img src="../resource/img/图片2.webp" alt="..."> <h3>高圆圆</h3> <p>出生于北京市,中国内地影视女演员、模特。</p> <button class="btn btn-default"> <span class="glyphicon glyphicon-heart"></span>喜欢 </button> <button class="btn btn-info"> <span class="glyphicon glyphicon-pencil"></span>评论 </button> </div> </div> </div> </div>
|
面板
默认的 .panel组件所做的只是设置基本的边框(border)和内补(padding)来包含内容。
.panel-default:默认样式
.panel-heading:面板头
.panel-body:面板主体内容
Bootstrap插件
导航
使用下拉与按钮组合可以制作导航
要点:
标签式导航
1 2 3 4 5 6 7 8 9
| <p>标签式的导航菜单</p> <ul class="nav nav-tabs"> <li class="active"><a href="#">Home</a></li> <li><a href="#">SVN</a></li> <li><a href="#">iOS</a></li> <li><a href="#">VB.Net</a></li> <li><a href="#">Java</a></li> <li><a href="#">PHP</a></li> </ul>
|
胶囊式导航
1 2 3 4 5 6 7 8 9
| <p>基本的胶囊式导航菜单</p> <ul class="nav nav-pills"> <li class="active"><a href="#">Home</a></li> <li><a href="#">SVN</a></li> <li><a href="#">iOS</a></li> <li><a href="#">VB.Net</a></li> <li><a href="#">Java</a></li> <li><a href="#">PHP</a></li> </ul>
|
分页
分页随处可见,分为页码导航和翻页导航
页码导航:ul标签上加pagination [pagination-lg | pagination-sm]
翻页导航:ul标签上加pager
分页
1 2 3 4 5 6 7 8 9
| <ul class="pagination"> <li><a href="#">«</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="#">»</a></li> </ul>
|
翻页
1 2 3 4
| <ul class="pager"> <li><a href="#">Previous</a></li> <li><a href="#">Next</a></li> </ul>
|
下拉菜单
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
|
在使用Bootstrap框架的下拉菜单时,必须使用两个js
1 2 3 4
| <script src="js/jquery-3.4.1.js"></script>
<script src="js/bootstrap.min.js"></script>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| <div class="dropdown "> <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"> 喜欢频道 <span class="caret"></span> </button> <ul class="dropdown-menu"> <li class="dropdown-header">----科普----</li> <li> <a href="#">人与自然</a> </li> <li class="divider"></li> <li class="dropdown-header">----搞笑----</li> <li> <a href="#">欢乐喜剧人</a> </li> <li> <a href="#">快乐大本营</a> </li> <li class="divider"></li> <li class="disabled"> <a href="#">生活大爆炸</a> </li> </ul> </div>
|
模态框
模态框(Modal)是覆盖在父窗体上的子窗体。通常,目的是显示来自一个单独的源的内容,可以在不离开父窗体的情况下有一些互动。子窗体可提供信息、交互等。
用法
1、通过 data 属性:在控制器元素(比如按钮或者链接)上设置属性 data-toggle=“modal”,同时设置 data-target=”#identifier” 或 href=”#identifier” 来指定要切换的特定的模态框(带有 id=“identifier”)。
2、通过 JavaScript:使用这种技术,可以通过 JavaScript 来调用带有 id=“identifier” 的模态框:
1
| $('#identifier').modal(options);
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Bootstrap 实例 - 模态框(Modal)插件</title> <link rel="stylesheet" href="../resource/bootstrap/css/bootstrap.css"> <script src="../resource/js/jquery-3.6.0.js"></script> <script src="../resource/bootstrap/js/bootstrap.js"></script> </head> <body>
<h2>创建模态框(Modal)</h2> <button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal"> 开始演示模态框 </button> <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true"> × </button> <h2 class="text-center">用户表信息</h2> </div>
<form id="user-form" action="../2、常用样式/9、按钮.html" class="form-horizontal " role="form">
<div>
<div class="form-group">
<label for="username" class="control-label col-md-2">用户名:</label> <div class="col-md-8"> <input id="username" placeholder="请输入用户名" name="username" class="form-control"> </div> </div>
<div class="form-group"> <label for="password" class="control-label col-md-2">密码:</label> <div class="col-md-8"> <input id="password" type="password" name="password" placeholder="请输入用户名" class="form-control"> </div> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">关闭 </button> <button type="submit" class="btn btn-primary" id="submit_btn"> 提交更改 </button> </div> </form> </div> </div> </div>
</body> </html>
|
方法
方法 |
描述 |
实例 |
Toggle: .modal(‘toggle’) |
手动切换模态框。 |
$('#identifier').modal('toggle'); |
Show: .modal(‘show’) |
手动打开模态框。 |
$('#identifier').modal('show'); |
Hide: .modal(‘hide’) |
手动隐藏模态框。 |
$('#identifier').modal('hide'); |