[Bootstrap]7天深入Bootstrap(1)入門准備


由於申請了一個域名,一個雲主機,開始弄個人網站。

發現Bootstrap非常方便,和重要,故開始學習與分享關於Bootstrap的技術。

 

推個廣告

個人網站:http://www.neverc.cn

signalR做的一個討論圈非常方便公司交流,哈哈!http://group

 

本節目錄:

 

 

 

簡介

Bootstrap是目前最流行的前端開發框架,由Twitter的兩位前 員工Mark Otto和Jacob Thornton在2010年8月份創建。它是一套 基於Less的前端開發庫(最新版也包含了Sass源碼),提供了很多常見並常用的各種CSS和JavaScript合集,以便開發人員隨時上手。

 

Bootstrap提供了如下重要的特性:

  • 一套完整的基礎CSS插件。
  • 豐富的預定義樣式表。
  • 一組基於jQuery的JS插件集。
  • 一個非常靈活的響應式(Responsive)柵格系統,並且崇尚移動先行(Mobile First)的思想。

從V3.1.0開始,Bootstrap的License授權改成了MIT協議。 MIT是目前最為寬松的協議,大家可以放心地在各種商業環境中使用它。

 

入門

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布局的寬度和移動設備的寬度一致,縮放大小為原始大小。

 

CSS基本語法

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像素的屏幕里,這里的樣式才生效*/ 
}

 

 

JS基本語法

||與&& 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"表示該區域用於導航

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM