因为申请了一个域名,一个云主机,开始弄我的网站。javascript
发现Bootstrap很是方便,和重要,故开始学习与分享关于Bootstrap的技术。css
推个广告html
我的网站:http://www.neverc.cn前端
signalR作的一个讨论圈很是方便公司交流,哈哈!http://grouphtml5
本节目录:java
Bootstrap是目前最流行的前端开发框架,由Twitter的两位前 员工Mark Otto和Jacob Thornton在2010年8月份建立。它是一套 基于Less的前端开发库(最新版也包含了Sass源码),提供了不少常见并经常使用的各类CSS和JavaScript合集,以便开发人员随时上手。bootstrap
Bootstrap提供了以下重要的特性:api
从V3.1.0开始,Bootstrap的License受权改为了MIT协议。 MIT是目前最为宽松的协议,你们能够放心地在各类商业环境中使用它。bash
cdn:
<!-- 新 Bootstrap 核心 CSS 文件 --> <link rel="stylesheet" href="//cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css"> <!-- 可选的Bootstrap主题文件(通常不用引入) --> <link rel="stylesheet" href="//cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap-theme.min.css"> <!-- jQuery文件。务必在bootstrap.min.js 以前引入 --> <script src="//cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script> <!-- 最新的 Bootstrap 核心 JavaScript 文件 --> <script src="//cdn.bootcss.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
Bootstrap框架的文件和源码能够在其官方网站 (www.getbootstrap.com)下载。点击连接能够看到3个下载连接
下载Bootstrap,下载的内容是编译后能够直接使用。包括未经压缩的文件和通过压缩处理的文件。
下载源码,是用于编译CSS的Less源码,以及各个插件的JS源码。
下载Sass项目,是用于编译CSS的Sass源码,以及各个插件的JS源码。
文件结构
bootstrap/ ├── css/ │ ├── bootstrap.css │ ├── bootstrap.css.map │ ├── bootstrap.min.css │ ├── bootstrap-theme.css │ ├── bootstrap-theme.css.map │ └── bootstrap-theme.min.css ├── js/ │ ├── bootstrap.js │ └── bootstrap.min.js └── fonts/ ├── glyphicons-halflings-regular.eot ├── glyphicons-halflings-regular.svg ├── glyphicons-halflings-regular.ttf ├── glyphicons-halflings-regular.woff └── glyphicons-halflings-regular.woff2
3.X版和2.X系列版本有一个很大区别,就是2.x系列版本用于展现icon小图标的.png图 片不见了,取而代之的是fonts目录的4种类型的字体文件。咱们称这种方式为@font-face版本的icon实现,该字体来自glyphicons.com网站,并获得免费受权。经过这种技术显示图标的好处是,图标能够被任意缩放、改变颜色。
对文件的css、js文件夹名称 进行随意重命名,可是不能对fonts文件夹进行重命名,由于CSS 文件里的源码使用了相对路径(../fonts/)
注意bs的全部js插件都是基于jQuery的,要确保在使用这些功能的时候引用相应的jQuery文件。
<!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="css/bootstrap.min.css" rel="stylesheet"> <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> <!--[if lt IE 9]> <script src="//cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script> <script src="//cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script> <![endif]--> </head> <body> <h1>你好,世界!</h1> <!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> <script src="//cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script> <!-- Include all compiled plugins (below), or include individual files as needed --> <script src="js/bootstrap.min.js"></script> </body> </html>
由上述模板代码能够看出,3.x和2.x版本相比,有一个很大的 区别,就是多了如下一行代码:
<meta name="viewport" content="width=device-width, initial-scale=1">
这就是咱们前面提到的,Bootstrap从3.0版本开始全面支持移动平台了,并将贯彻移动先行(Mobile First)的宗旨。
上述代码 的意思是,默认状况下,UI布局的宽度和移动设备的宽度一致,缩放大小为原始大小。
Bootstrap的CSS组件的核心就是选择器的定义以及在各自优先级上的处理。
如何肯定CSS的优先级?
这里咱们要先引入一个机制,分别 用4个数字(a,b,c,d)表示优先级组合.
第一个数字(a)表示style属性,优先级最高。因为通常都 是class样式,因此该值通常都是0。
第二个数字(b)是该CSS选择器上的id数量的总和,通常都 是1个。
第三个数字(c)是用在该CSS选择器上的其余属性CSS选择 器以及伪类的总和。这里包括class(.btn)和属性CSS选择器(比 如li[id=red])。
第四个数字(d)计算元素(就像table、p、div等)和伪元 素(就像first-child等)。
选择器
这里简单介绍2个经常使用的:
子选择器:
element element | div p | 选择 <div> 元素内部的全部 <p> 元素。 | 1 |
element>element | div>p | 选择父元素为 <div> 元素的全部 <p> 元素。 |
兄弟选择器:
element+element | div+p | 选择紧接在 <div> 元素以后的全部 <p> 元素。 |
element1~element2 | p~ul | 选择前面有 <p> 元素的每一个 <ul> 元素。 |
扩展:
div,p表示多个选择器同时被选择
伪类用于向某些选择器添加特殊的效果。如a:hover a:link
媒体查询
媒体查询是进行响应式设计的核心要素,其功能很是强大。
Bootstrap主要用到min-width、max-width,以及and语法, 用于在不一样的分辨率下设置不一样的CSS样式。
@media (max-width: 767px) { /*在小于768像素的屏幕里,这里的样式才生效*/ } @media (min-width: 768px) and (max-width: 991px) { /*在768和991像素之间的屏幕里,这里的样式才生效*/ } @media (min-width: 992px) and (max-width: 1199px) { /*在992和1199像素之间的屏幕里,这里的样式才生效*/ } @media (min-width: 1200px) { /*在大于1200像素的屏幕里,这里的样式才生效*/ }
||与&& 2个运算符
||表示,若是第一个元素能够转换为true,则返回第一个元 素的值,不然查询第二个元素的值
&&则相反,若是第一个元素能够转换为false,才返回第一 个元素的值,不然返回第二个元素的值
空对象null,undefined为false
数字零为false
空字符串为false
自执行函数
(function () { /* code */ } ()); // 推荐使用这个 (function () { /* code */ })(); // 这个也是能够用的 +function () { /* code */ }(); //前面的+号主要是防止不符合规定的代码 ;function () { /* code */ }(); //+号也能够换成;
原型
在Alert函数上定义一个名为close的原型方法。
Alert.prototype.close = function (e) { /*...*/ }
什么是原型,原型的好处,能够看个人博客js篇。
这里演示如何调用原型方法
var alert = new Alert(); alert.close();
jQuery
绑定事件
$('td').on("click", function (e) {//todo}); //在td上绑定click $('td).off('click'); // 在td上禁用click事件
而在bs中
$(document).on('click.bs.carousel.data-api','td',function (e){}; $(document).off('.carousel.data-api');
上述的on在使用时,中间多了一个参数,并且选择器变成了 document。它的好处是只在document上绑定一个单击事件,利 用冒泡的机制,在单击的时候检查是不是td元素,若是是才处 理。而前面咱们把td做为选择器的时候,一个页面有多少td元素 就会绑定多少个click事件,这样性能会大大下降。这种3个参数的 模式称为享元模式。
$(selector).data()
收集指定元素上的全部以data-开头的自定义属性,并合并成为一个对象字面量。
<div id="abc" data-role="aaa" data-toggle="toggle"></div>
若是要获取data-role里aaa这个值
$("'#abc").data("role");
Less是一种CSS预处理技术,它是一种动态样式语言,属于 CSS预处理语言中的一种。
HTML5辅助设计
在bs中,出现了不是以data-开头的 自定义属性,咱们称之为辅助属性。
这些属性是HTML5新提出的概念,用于支持残障人士、老年人、文化水平不高或暂时患病的 人使用屏幕阅读器进行页面访问。
aria-hidden="true"表示对屏幕阅读器隐藏该div 元素
role="navigation"表示该区域用于导航