BootStrap框架

Bootstrap框架

Bootstrap介绍

Bootstrap是Twitter开源的基于HTML、CSS、JavaScript的前端框架。它是为实现快速开发Web应用程序而设计的一套前端工具包。它支持响应式布局,而且在V3版本以后坚持移动设备优先。css

为何要使用Bootstrap?

     在Bootstrap出现以前:html

      命名:重复、复杂、无心义(想个名字费劲)前端

      样式:重复、冗余、不规范、不和谐npm

      页面:错乱、不规范、不和谐bootstrap

      在使用Bootstrap以后: 各类命名都统一而且规范化。 页面风格统一,画面和谐。canvas

Bootstrap下载

官方地址:https://getbootstrap.comapi

中文地址:http://www.bootcss.com/浏览器

咱们使用V3版本的Bootstrap,咱们下载的是用于生产环境的Bootstrap。前端框架

Bootstrap环境搭建

目录结构:框架

复制代码
bootstrap-3.3.7-dist/ ├── css // CSS文件 │ ├── bootstrap-theme.css // Bootstrap主题样式文件 │ ├── bootstrap-theme.css.map │ ├── bootstrap-theme.min.css // 主题相关样式压缩文件 │ ├── bootstrap-theme.min.css.map │ ├── bootstrap.css │ ├── bootstrap.css.map │ ├── bootstrap.min.css // 核心CSS样式压缩文件 │ └── bootstrap.min.css.map ├── fonts // 字体文件 │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ └── glyphicons-halflings-regular.woff2 └── js // JS文件  ├── bootstrap.js ├── bootstrap.min.js // 核心JS压缩文件 └── npm.js
复制代码

处理依赖

因为Bootstrap的某些组件依赖于jQuery,因此请确保下载对应版本的jQuery文件,来保证Bootstrap相关组件运行正常。

Bootstrap 提供了一套响应式、移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增长,系统会自动分为最多12列。它包含了易于使用的预约义类,还有强大的mixin 用于生成更具语义的布局

 

简介

栅格系统用于经过一系列的行(row)与列(column)的组合来建立页面布局,你的内容就能够放入这些建立好的布局中。下面就介绍一下 Bootstrap 栅格系统的工做原理:

  • “行(row)”必须包含在 .container (固定宽度)或 .container-fluid (100% 宽度)中,以便为其赋予合适的排列(aligment)和内补(padding)。
  • 经过“行(row)”在水平方向建立一组“列(column)”。
  • 你的内容应当放置于“列(column)”内,而且,只有“列(column)”能够做为行(row)”的直接子元素。
  • 相似 .row.col-xs-4 这种预约义的类,能够用来快速建立栅格布局。Bootstrap 源码中定义的 mixin 也能够用来建立语义化的布局。
  • 经过为“列(column)”设置 padding 属性,从而建立列与列之间的间隔(gutter)。经过为 .row 元素设置负值 margin 从而抵消掉为 .container 元素设置的 padding,也就间接为“行(row)”所包含的“列(column)”抵消掉了padding
  • 负值的 margin就是下面的示例为何是向外突出的缘由。在栅格列中的内容排成一行。
  • 栅格系统中的列是经过指定1到12的值来表示其跨越的范围。例如,三个等宽的列可使用三个 .col-xs-4 来建立。
  • 若是一“行(row)”中包含了的“列(column)”大于 12,多余的“列(column)”所在的元素将被做为一个总体另起一行排列。
  • 栅格类适用于与屏幕宽度大于或等于分界点大小的设备 , 而且针对小屏幕设备覆盖栅格类。 所以,在元素上应用任何 .col-md-* 栅格类适用于与屏幕宽度大于或等于分界点大小的设备 , 而且针对小屏幕设备覆盖栅格类。 所以,在元素上应用任何 .col-lg-* 不存在, 也影响大屏幕设备。

经过研究后面的实例,能够将这些原理应用到你的代码中。

 

 

 

 

Bootstrap全局样式

排版、按钮、表格、表单、图片等咱们经常使用的HTML元素,Bootstrap中都提供了全局样式。

咱们只要在基本的HTML元素上经过设置class就可以应用上Bootstrap的样式,从而使咱们的页面更美观和谐。

移动设备优先

为了确保适当的绘制和触屏缩放,须要在 <head> 之中添加 viewport 元数据标签

<meta name="viewport" content="width=device-width, initial-scale=1">

 

Normalize.css

为了加强跨浏览器表现的一致性,咱们使用了 Normalize.css,这是由 Nicolas Gallagher 和 Jonathan Neal 维护的一个CSS 重置样式

 

布局容器

Bootstrap 须要为页面内容和栅格系统包裹一个 .container 容器。咱们提供了两个做此用处的类。注意,因为 padding 等属性的缘由,这两种 容器类不能互相嵌套。

.container 类用于固定宽度并支持响应式布局的容器。

<div class="container">
  ...
</div>

 

.container-fluid 类用于 100% 宽度,占据所有视口(viewport)的容器。

<div class="container-fluid">
  ...
</div>

 

 

标题相关

标题

复制代码
<h1>一级标题36px</h1> <h2>二级标题30px</h2> <h3>三级标题24px</h3> <h4>四级标题18px</h4> <h5>五级标题14px</h5> <h6>六级标题12px</h6> <!--除了使用h标签,Bootstrap内置了相应的全局样式--> <!--内联标签应用标题样式--> <span class="h1">一级标题36px</span> <span class="h2">二级标题30px</span> <span class="h3">三级标题24px</span> <span class="h4">四级标题18px</span> <span class="h5">五级标题14px</span> <span class="h6">六级标题12px</span>
复制代码

副标题

<!--一级标题中嵌入小标题--> <h1>一级标题<small>小标题</small></h1>

文本对齐

<!--文本对齐--> <p class="text-left">文本左对齐</p> <p class="text-center">文本居中</p> <p class="text-right">文本右对齐</p>

文本大小写

<!--大小写--> <p class="text-lowercase">Lowercased text.</p> <p class="text-uppercase">Uppercased text.</p> <p class="text-capitalize">Capitalized text.</p>

表格

Class 描述
.table-striped 条纹状表格
.table-bordered 带边框的表格
.table-hover 鼠标悬停变色的表格
.table-condensed 紧缩型表格
.table-responsive 响应式表格

状态类

Class 描述
.active 鼠标悬停在行或单元格上时所设置的颜色
.success 标识成功或积极的动做
.info 标识普通的提示信息或动做
.warning 标识警告或须要用户注意
.danger 标识危险或潜在的带来负面影响的动做

表单

内联表单

表单状态

带图标的表单

按钮

<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"> <input class="btn btn-default" type="submit" value="Submit">

按钮样式

复制代码
<!-- Standard button --> <button type="button" class="btn btn-default">(默认样式)Default</button> <!-- Provides extra visual weight and identifies the primary action in a set of buttons --> <button type="button" class="btn btn-primary">(首选项)Primary</button> <!-- Indicates a successful or positive action --> <button type="button" class="btn btn-success">(成功)Success</button> <!-- Contextual button for informational alert messages --> <button type="button" class="btn btn-info">(通常信息)Info</button> <!-- Indicates caution should be taken with this action --> <button type="button" class="btn btn-warning">(警告)Warning</button> <!-- Indicates a dangerous or potentially negative action --> <button type="button" class="btn btn-danger">(危险)Danger</button> <!-- Deemphasize a button by making it look like a link while maintaining button behavior --> <button type="button" class="btn btn-link">(连接)Link</button>
复制代码

按钮大小

复制代码
<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>
复制代码

图片

<img src="..." class="img-responsive" alt="Responsive image">

图片形状

<img src="..." alt="..." class="img-rounded"> <img src="..." alt="..." class="img-circle"> <img src="..." alt="..." class="img-thumbnail">

辅助类

文本颜色

复制代码
<p class="text-muted">...</p> <p class="text-primary">...</p> <p class="text-success">...</p> <p class="text-info">...</p> <p class="text-warning">...</p> <p class="text-danger">...</p>
复制代码

背景颜色

<p class="bg-primary">...</p> <p class="bg-success">...</p> <p class="bg-info">...</p> <p class="bg-warning">...</p> <p class="bg-danger">...</p>

关闭按钮

<button type="button" class="close" aria-label="Close"><span aria-hidden="true">&times;</span></button>

下拉三角

<span class="caret"></span>

快速浮动

<div class="pull-left">...</div> <div class="pull-right">...</div>

内容块居中

<div class="center-block">...</div>

清除浮动

<!-- Usage as a class --> <div class="clearfix">...</div>

显示与隐藏

<div class="show">...</div> <div class="hidden">...</div>

经常使用Bootstrap组件

  1. 字体图标
  2. 下拉菜单
  3. 按钮组
  4. 输入框俎
  5. 导航
  6. 分页
  7. 标签和徽章
  8. 页头
  9. 缩率图
  10. 进度条

模拟滚动的进度条:

var $d1 = $("#d1");
var width = 0;
var theID = setInterval(setValue, 200);

function setValue() {
  if (width === 100) {
    clearInterval(theID);
  } else {
    width++;
    $d1.css("width", width+"%").text(width+"%");
  }
}

 

响应式开发

为何要进行响应式开发?

随着移动设备的流行,网页设计必需要考虑到移动端的设计。同一个网站为了兼容PC端和移动端显示,就须要进行响应式开发。

什么是响应式?

利用媒体查询,让同一个网站兼容不一样的终端(PC端、移动端)呈现不一样的页面布局。

用到的技术:

CSS3@media查询

用于查询设备是否符合某一特定条件,这些特定条件包括屏幕尺寸、是否可触摸、屏幕精度、横屏竖屏等信息。

常见属性:

  • device-width, device-height 屏幕宽、高
  • width,height 渲染窗口宽、高
  • orientation 设备方向
  • resolution 设备分辨率

语法:

@media mediatype and|not|only (media feature) { CSS-Code; }

不一样的媒体使用不一样的stylesheet

<link rel="stylesheet" media="mediatype and|not|only (media feature)" href="mystylesheet.css">

viewport

手机浏览器是把页面放在一个虚拟的"窗口"(viewport)中,一般这个虚拟的"窗口"(viewport)比屏幕宽,这样就不用把每一个网页挤到很小的窗口中(这样会破坏没有针对手机浏览器优化的网页的布局),用户能够经过平移和缩放来看网页的不一样部分。

设置viewport

一个经常使用的针对移动网页优化过的页面的 viewport meta 标签大体以下:

<meta name=”viewport” content=”width=device-width, initial-scale=1, maximum-scale=1″>
  • width:控制 viewport 的大小,能够指定的一个值,若是 600,或者特殊的值,如 device-width 为设备的宽度(单位为缩放为 100% 时的 CSS 的像素)。
  • height:和 width 相对应,指定高度。
  • initial-scale:初始缩放比例,也便是当页面第一次 load 的时候缩放比例。
  • maximum-scale:容许用户缩放到的最大比例。
  • minimum-scale:容许用户缩放到的最小比例。
  • user-scalable:用户是否能够手动缩放。

Bootstrap的栅格系统

  • container
  • row
  • column

注意事项: 使用Bootstrap的时候不要让本身的名字与Bootstrap的类名冲突。

JavaScript插件

经常使用的Bootstrap自带插件

其余经常使用插件

Bootstrap实例精选:

  • 封面图
  • Carousel
  • 博客页面
  • 控制台
  • 登陆页
  • Offcanvas

实践

  • 后台管理页面(修改Dashbord)
  • 经常使用组件练习
相关文章
相关标签/搜索