Bootstrap
Bootstrap简介and概述
- Bootstrap 是由 Twitter的 Mark Otto和 Jacob Thornton 开发的;
- Bootstrap 是 2011 年八月在 GitHub 上发布的开源产品;【GitHub:托管代码的网站】
- Bootstrap,基于 HTML、CSS、JAVASCRIPT 的前端框架(半成品)。其预定义一套CSS样式和与样式对应的jQuery代码,我们只需要提供固定HTML结构,添加固定的class样式,就可以完成指定效果的实现;
- 用于开发响应式布局、移动设备优先的 WEB 项目;
- 提高开发效率;
简单来说Bootstrap是:html+css+js
学习Bootstrap需要有一定得html css js知识
响应式布局
响应式布局 :一个网站能够兼容多个终端(手机,iPad等),而不需要为每个终端做一个特定的版本。此概念是为解决移动互联网浏览而诞生的;
为什么要用响应式布局 :响应式布局能够为不同终端的用户提供更加舒适的界面和更好的用户体验,而且随着大屏幕移动设备的普及,用“大势所趋”来形容也不为过。随着越来越多的设计师采用了这个技术,我们不仅看到很多的创新,还看到一些成形的模式;
BootStrap的响应式 :BootStrap就是响应式布局最成功的的实现,为了兼容不同的浏览器采用jQuery,为了适配不同的终端采用CSS3 Media Query(媒体查询);如下:
pc端BootStrap官网:
pad端BootStrap官网:
移动端BootStrap官网:
同一个页面在不同的终端上不会出现浏览困难,页面变形,用户体验好。
Bootstrap入门
想要用Bootstrap那我们就必须要有它得环境
- 环境搭建
- 下载
- BootStrap中文官网下载地址:http://www.bootcss.com/
点击Bootstrap3中文文档(3.3.7)
再点击下载Bootstrap
我们选下载Bootstrap
以下是下载解压后得Bootstrap目录结构
官方给了一段代码,最简单得一个Bootstrap页面
大家可以拷贝运行一下
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
<title>Bootstrap 101 Template</title>
<!-- Bootstrap -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet">
<!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 -->
<!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 -->
<!--[if lt IE 9]>
<script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
<![endif]-->
</head>
<body>
<h1>你好,世界!</h1>
<!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->
<script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
<!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>
</body>
</html>
Bootstrap核心学习
布局容器
BootStrap需要为页面内容包裹一个.container
容器 。我们提供了两个作此用处的类。注意,由于 padding
等属性的原因,这两种 容器类不能互相嵌套。
.container
类用于固定宽度并支持响应式布局的容器。
<div class="container">
...
</div>
.container-fluid
类用于 100% 宽度,占据全部视口(viewport)的容器。
<div class="container-fluid">
...
</div>
.container
和.container-fluid
的样式参数:
.container {
padding-right: 15px;
padding-left: 15px;
margin-right: auto;
margin-left: auto;
}
.container-fluid {
padding-right: 15px;
padding-left: 15px;
margin-right: auto;
margin-left: auto;
}
【对比】
.container
容器会随着屏幕的大小变化而变化, 去适配不同区间屏幕;.container-fluid
相当于就是设置 宽度 100%,多用于移动端宽度撑满整个容器;.container
用于响应式布局,.container-fluid
多用于移动端宽度撑满整个容器,.container
布局用的比较多 ;
媒体查询
BootStrap中媒体查询的作用:
- 获取不同屏幕的尺寸信息;
- 根据不同屏幕尺寸设置不同的样式;
/* 超小屏幕(手机,小于 768px) */
/* 没有任何媒体查询相关的代码,因为这在 Bootstrap 中是默认的 */
/* 小屏幕(平板 wd>=768px & wd<992) */
@media (min-width: @screen-sm-min) { ... }
/* 中等屏幕(桌面显示器 wd>=992px & wd<1200px) */
@media (min-width: @screen-md-min) { ... }
/* 大屏幕(大桌面显示器 wd>=1200px) */
@media (min-width: @screen-lg-min) { ... }
栅格系统
Bootstrap最大得亮点栅格系统
什么是栅格系统
- 栅格系统就是,将页面布局划分为等宽的列,然后通过列数的定义来模块化页面布局。
- Bootstrap的栅格系统采用了1-12列的模式,并且通过比例计算来设置你定义的列宽。
- 例如你这一行想要采用两列的布局模式,那么每列的宽度都为外容器的50%,不管你用什么设备浏览,它都会采用这样的比例进行展示。
- 不过如果当设备宽度小于你设定的最小宽度,那么这两列就会并排成为一列。
Bootstrap栅格系统发挥两个作用:
- 对页面进行布局;
- 根据设备屏幕,自动调节内容的排列;
栅格系统快速入门
栅格系统用于通过一系列的行(row)与列(column)的组合来创建页面布局,你的内容就可以放入这些创建好的布局中。下面就介绍一下 Bootstrap 栅格系统的工作原理:
- “行(row)”必须包含在
.container
(固定宽度)或.container-fluid
(100% 宽度)中,以便为其赋予合适的排列(aligment)和内补(padding)。 - 通过“行(row)”在水平方向创建一组“列(column)”。
- 你的内容应当放置于“列(column)”内,并且,只有“列(column)”可以作为行(row)”的直接子元素。
- 栅格系统中的列是通过指定1到12的值来表示其跨越的范围。例如,三个等宽的列可以使用三个
.col-xs-4
来创建。 - 如果一“行(row)”中包含了的“列(column)”大于 12,多余的“列(column)”所在的元素将被作为一个整体另起一行排列。
- 类似
.row
和.col-xs-4
这种预定义的类,可以用来快速创建栅格布局。
接下来,我们演示一下
在演示之前,我们先来看一下,怎么使用Bootstrap
- 首先创建工程
- 直接把Bootstrap解压文件 js、css、fonts文件夹复制到工程里
接下来创建test.html文件,我们开始演示
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title></title>
<link href="css/bootstrap.min.css" rel="stylesheet">
<style type="text/css">
div {
border: 1px solid red;
/*写这个属性我们可以看得更加直观,没有别的用*/
}
</style>
</head>
<body>
<!--栅格系统:在布局容器内部,把页面划分成行和列
1、把页面划分成行和列:
2、响应式布局处理;
栅格系统的使用:
1、所有的栅格必须在布局容器内部: container container-fluid
(1)container :响应式 布局容器两端会留出空白
(2)container-fluid:铺满整个屏幕
2、行划分:通过设置 class="row"
2、列划分:
【1】每一行默认分为 12 列;
【2】列定义: 通过设置class = "col-xx-n"
class="col-md-1" 指的是 在中等屏幕下,占一份
栅格参数:col-xx-n
大屏幕(>=1200px): col-lg-n
中等屏幕:(992~1200) :col-md-n col-md-2
小屏幕:(768~992) : col-sm-n
超小屏幕: <=768 : col-xs-n-->
<div class="container"><!--首先要写容器 .container 或 .container-fluid-->
<div class="row"><!--再写行 里面写列 行(row)可在容器里有很多个,也可以嵌套在行(row)里或列里-->
<!--我们先写12个 每个div占1列-->
<div class="col-md-1">md-1</div>
<div class="col-md-1">md-1</div>
<div class="col-md-1">md-1</div>
<div class="col-md-1">md-1</div>
<div class="col-md-1">md-1</div>
<div class="col-md-1">md-1</div>
<div class="col-md-1">md-1</div>
<div class="col-md-1">md-1</div>
<div class="col-md-1">md-1</div>
<div class="col-md-1">md-1</div>
<div class="col-md-1">md-1</div>
<div class="col-md-1">md-1</div>
</div>
</div>
<script type="text/javascript" src="js/jquery-3.3.1.min.js" ></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>
效果如下:
栅格参数
超小屏幕 手机 (<768px) | 小屏幕 平板 (≥768px) | 中等屏幕 桌面显示器 (≥992px) | 大屏幕 大桌面显示器 (≥1200px) | |
---|---|---|---|---|
栅格系统行为 | 总是水平排列 | 开始是堆叠在一起的,当大于这些阈值时将变为水平排列C | ||
.container 最大宽度 | None (自动) | 750px | 970px | 1170px |
类前缀 | .col-xs- | .col-sm- | .col-md- | .col-lg- |
列(column)数 | 12 | |||
最大列(column)宽 | 自动 | ~62px | ~81px | ~97px |
槽(gutter)宽 | 30px (每列左右均有 15px) | |||
可嵌套 | 是 | |||
偏移(Offsets) | 是 | |||
列排序 | 是 |
【移动设备和桌面屏幕】
<!-- Stack the columns on mobile by making one full-width and the other half-width -->
<div class="row">
<div class="col-xs-12 col-md-8">.col-xs-12 .col-md-8</div>
<div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
</div>
<!-- Columns start at 50% wide on mobile and bump up to 33.3% wide on desktop -->
<div class="row">
<div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
<div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
<div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
</div>
<!-- Columns are always 50% wide, on mobile and desktop -->
<div class="row">
<div class="col-xs-6">.col-xs-6</div>
<div class="col-xs-6">.col-xs-6</div>
</div>
【手机、平板、桌面】
<div class="row">
<div class="col-xs-12 col-sm-6 col-md-8">.col-xs-12 .col-sm-6 .col-md-8</div>
<div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
</div>
<div class="row">
<div class="col-xs-6 col-sm-4">.col-xs-6 .col-sm-4</div>
<div class="col-xs-6 col-sm-4">.col-xs-6 .col-sm-4</div>
<!-- Optional: clear the XS cols if their content doesn't match in height -->
<div class="clearfix visible-xs-block"></div>
<div class="col-xs-6 col-sm-4">.col-xs-6 .col-sm-4</div>
</div>
大家根据以上参数,多去试一试
排版
标题
HTML 中的所有标题标签,<h1>
到 <h6>
均可使用。另外,还提供了 .h1
到 .h6
类,为的是给内联(inline)属性的文本赋予标题的样式。
标题标签
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title></title>
<link href="css/bootstrap.min.css" rel="stylesheet">
<style type="text/css">
</style>
</head>
<body>
<div class="container">
<h1>h1.xxxxxx<small>副标题</small></h1>
<h2>h2.xxxxxx</h2>
<h3>h3.xxxxxx</h3>
<h4>h4.xxxxxx</h4>
<h5>h5.xxxxxx</h5>
<h6>h6.xxxxxx</h6>
</div>
<script type="text/javascript" src="js/jquery-3.3.1.min.js" ></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>
内敛标题样式
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title></title>
<link href="css/bootstrap.min.css" rel="stylesheet">
<style type="text/css">
</style>
</head>
<body>
<div class="container">
<span class="h1">h1.xxxxxx<small>副标题</small></span>
<span class="h2">h2.xxxxxx</span>
<span class="h3">h3.xxxxxx</span>
<span class="h4">h4.xxxxxx</span>
<span class="h5">h5.xxxxxx</span>
<span class="h6">h6.xxxxxx</span>
</div>
<script type="text/javascript" src="js/jquery-3.3.1.min.js" ></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>
文字对齐方式
通过文本对齐类,可以简单方便的将文字重新对齐。
样式名(class属性值) | 说明 |
---|---|
.text-left | 设定文本左对齐 |
.text-center | 设定文本居中对齐 |
.text-right | 设定文本右对齐 |
.text-justify | 设定文本对齐,段落中超出屏幕部分文字自动换行 |
.text-nowrap | 段落中超出屏幕部分不换行 |
【示例】
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title></title>
<link href="css/bootstrap.min.css" rel="stylesheet">
<style type="text/css">
</style>
</head>
<body>
<div class="container">
<p class="text-left">我居左</p>
<p class="text-center">我居中</p>
<p class="text-right">我居右</p>
<!--
两端对齐:设定文本对齐,段落中超出屏幕部分文字自动换行
-->
<p class="text-justify">
文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐
文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐
文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐
文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐
文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐
文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐
文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐
文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐
</p>
<!--
不被包裹:段落中超出屏幕部分不换行
-->
<p class="text-nowrap">
文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐
文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐
文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐
文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐
文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐
文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐
文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐
文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐文本对齐
</p>
</div>
<script type="text/javascript" src="js/jquery-3.3.1.min.js" ></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>
内联列表
【示例】
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title></title>
<link href="css/bootstrap.min.css" rel="stylesheet">
<style type="text/css">
</style>
</head>
<body>
<div class="container">
<!--列表:有序,无序-->
<ol class="list-unstyled" style="font-size: 20px">
<li>百度</li>
<li>腾讯</li>
<li>阿里</li>
</ol>
<ul class="list-inline" style="font-size: 20px">
<li>百度</li>
<li>腾讯</li>
<li>阿里</li>
</ul>
</div>
<script type="text/javascript" src="js/jquery-3.3.1.min.js" ></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>
今天先写到这,继续更新!