因爲申請了一個域名,一個雲主機,開始弄我的網站。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"表示該區域用於導航