Bootstrap入門

本文最初發表於博客園,並在GitHub上持續更新前端的系列文章。歡迎在GitHub上關注我,一塊兒入門和進階前端。javascript

如下是正文。css

Bootstrap 介紹

Bootstrap 是很是流行的前端框架。特色是:靈活簡潔、代碼優雅、美觀大方。它是由Twitter的兩名工程師 Mark Otto 和 Jacob Thornton 在2011年開發的。html

簡單來講,Bootstrap 讓 Web 開發更簡單、更快捷。使用 Bootstrap 框架並不表明咱們再開發時不用本身寫 CSS 樣式,而是不用謝絕大多數常見的樣式。前端

PS:Amaze UI 這個框架其實跟 Bootstrap 很像。html5

官網網站

V3版本:git

V4版本:github

列舉幾個用 Bootstrap 作的網站:web

Bootstrap 版本

目前市面上使用的最多的是 3.x.x 版本。各個版本的介紹:

2.3.2版本:

  • 2013年以後,中止維護;

  • 支持更普遍的瀏覽器

  • 代碼不夠簡潔, 功能不夠多。

3.x.x 版本:

  • 目前最新的穩定版本。

  • 不支持 IE7 和早期的 Firefox

  • 支持 IE8,單效果很差。

2015年8月發佈 4.0.0-alpha 的內部測試版。

版本號的普及:

  • alpha 版:內部測試版。α 是希臘字母的第一個,表示最先的版本,bug不少。主要是給開發和測試人員找 bug 用的。

  • beta 版:公開測試版。 主要是給「部落」用戶和忠實用戶測試用的。bug依然不少,但比 Alpha 版要穩定。這個階段的版本還會不斷增長新功能,若是你是發燒友,能夠下載這個版本。

  • rc 版:候選版本(Release Candidate)。該版本再也不增長新的功能。相似於最終發行版以前的預覽版(發行的候選版本)。此版本的發佈,預示着最終發行版即將到來。做爲普通用戶,若是很着急,也能夠下載 rc 版。

  • stable 版:穩定版。在開源軟件中,都有 stable版本,這個是開源軟件的最終發行版,用戶能夠放心大膽地使用。

Bootstrap 庫的下載

這裏咱們以 Bootstrap V3.3.7 爲例。

進入中文官網,下載 用於生產環境的 Bootstrap,以下圖所示:

下載以後,解壓 bootstrap-3.3.7-dist ,有三個文件夾:

將其拷貝到工程文件的lib文件夾下便可。

PS:dist表示編譯以後的文件,這在庫文件中是很常見的。

由於 bootstrap.js依賴jQuery,因此要先引用jquery.js 而後引用bootstrap.js。

Bootstrap 基礎模板的介紹

Bootstrap官網提供了基本模板,以下圖所示:

其完整版代碼 copy 以下:

<!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.0, user-scalable=no">
    <!-- 上述3個meta標籤*必須*放在最前面,任何其餘內容都*必須*跟隨其後! -->
    <title>個人網站</title>

    <!-- Bootstrap -->
    <link rel="stylesheet" href="lib/bootstrap/css/bootstrap.css">
    <!-- 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="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script>
      <script src="https://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="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
    <!-- Include all compiled plugins (below), or include individual files as needed -->
    <script src="js/bootstrap.min.js"></script>
  </body>
</html>

咱們須要對上面的代碼進行解釋。

(1)Compatible

<meta http-equiv="X-UA-Compatible" content="IE=edge">

解釋:設置瀏覽器的兼容模式版本。表示若是在IE瀏覽器下則使用最新的標準,渲染當前文檔。

(2)viewport 視口

<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">

解釋:聲明當前網頁在移動端瀏覽器中展現的相關設置。咱們在作移動 web 開發時,就用上面這行代碼設置 viewport。

視口的做用:在移動瀏覽器中,當頁面寬度超出設備,瀏覽器內部虛擬的一個頁面容器,將頁面容器縮放到設備這麼大,而後展現。

須要注意的是:

  • 目前大多數手機瀏覽器的視口(承載頁面的容器)寬度都是980;
  • 視口的寬度能夠經過meta標籤設置。
  • 此屬性爲移動端頁面視口設置,上方代碼設置的值,表示在移動端頁面的寬度爲設備的寬度,而且不縮放(縮放級別爲1)
    • width:視口的寬度
    • initial-scale:初始化縮放
    • user-scalable:是否容許用戶自行縮放(值能夠寫成yes/no,也能夠寫成1/0)
    • minimum-scale:最小縮放。
    • maximum-scale:最大縮放。

PS:若是設置了不容許用戶縮放,那麼最小縮放和最大縮放就沒有意義了。兩者是矛盾的。

(3)條件註釋

<!--[if lt IE 9]>
      <script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script>
      <script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->

條件註釋的做用:當判斷條件知足時,就會執行註釋中的HTML代碼,不知足時會當作註釋忽略掉。

上方代碼的條件註釋中,引入了兩個腳本:

  • html5shiv:讓瀏覽器能夠識別 HTML5 的新標籤。如header、footer、section等。
  • respond.js:讓低版本瀏覽器可使用 CSS3 的媒體查詢。

另外,咱們還須要引入下面這個庫:

  • jQuery:Bootstrap框架中的全部 JS 組件都依賴於 jQuery 實現。

咱們能夠把上面這三個庫文件拷貝到 lib 文件夾中(注意引用的路徑要寫正確)。

使用 Bootstrap 搭建項目

一、工程文件的目錄結構

├─ Demo ·························· 項目所在目錄
└─┬─ /css/ ······················· 咱們本身的CSS文件
  ├─ /font/ ······················ 使用到的字體文件
  ├─ /img/ ······················· 使用到的圖片文件
  ├─ /js/ ························ 本身寫的JS腳步
  ├─ /lib/ ······················· 從第三方下載回來的庫【只用不改】
  ├─ /favicon.ico ················ 站點圖標
  └─ /index.html ················· 入口文件

二、下載並引入 Bootstrap 庫文件

見上一段的講解。引入以後,另外還須要引入 html5shiv、respond、jQuery 這三個庫文件。

三、字符集、Viewport設置、瀏覽器兼容模式

咱們將 Bootstrap 的基礎模板代碼 copy到項目的index.html中,這其中就包括最前面的三個meta標籤:

<meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
    <!-- 上述3個meta標籤*必須*放在最前面,任何其餘內容都*必須*跟隨其後! -->

四、favicon(站點圖標)

<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">

五、引入相應的第三方文件

<!-- 引入 Bootstrap 的核心樣式文件(必須) -->
    <link rel="stylesheet" href="lib/bootstrap/css/bootstrap.css">
    <!-- 引入咱們本身寫的 css 樣式文件-->
    <link rel="stylesheet" href="css/my.css">

    ...

    <script src="lib/jquery/jquery.js"></script>
    <script src="lib/bootstrap/js/bootstrap.js"></script>
    <script src="js/my.js"></script>

注意,先引入第三方的文件,再引入咱們本身寫的文件。

六、默認字體

在咱們默認的樣式表中將默認字體設置爲:

body{
  font-family: "Helvetica Neue",
                Helvetica,
                Microsoft Yahei,
                Hiragino Sans GB,
                WenQuanYi Micro Hei,
                sans-serif;
}

七、完成頁面空結構

先劃分好頁面中的大容器,而後在具體看每個容器中單獨的狀況。

完整代碼以下:

<!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, user-scalable=no">
    <title>個人網站</title>
    <!--建議:第三方引用的css庫放在上面,咱們本身寫的文件,都放在下面-->

    <!-- 引入 Bootstrap 的核心樣式文件(必須) -->
    <link rel="stylesheet" href="lib/bootstrap/css/bootstrap.css">
    <!-- 引入咱們本身寫的 css 樣式文件-->
    <link rel="stylesheet" href="css/main.css">
    <link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
    <!--[if lt IE 9]>
    <script src="lib/html5shiv/html5shiv.min.js"></script>
    <script src="lib/respond/respond.min.js"></script>
    <![endif]-->
</head>

<body>
<!-- 頭部區域 -->
<header id="header">
</header>
<!-- /頭部區域 -->

<!-- 廣告輪播 -->
<section id="main_ad"></section>
<!-- /廣告輪播 -->

<!-- 特點介紹 -->
<section></section>
<!-- /特點介紹 -->

<!-- 當即預定 -->
<section></section>
<!-- /當即預定 -->

<!-- 產品推薦 -->
<section></section>
<!-- /產品推薦 -->

<!-- 新聞列表 -->
<section></section>
<!-- /新聞列表 -->

<!-- 合做夥伴 -->
<section></section>
<!-- /合做夥伴 -->

<!-- 腳註區域 -->
<footer></footer>
<!-- /腳註區域 -->

<script src="lib/jquery/jquery.js"></script>
<script src="lib/bootstrap/js/bootstrap.js"></script>
<script src="js/main.js"></script>
</body>

</html>

CSS 樣式

全局 CSS 樣式在官網有介紹:

若是須要哪一個樣式,直接根據文檔的指引,在相應的元素里加指定的類名便可。

咱們選部分重要的來說一下。

佈局容器:container 類

截圖以下:

做用:用於定義一個固定寬度且居中的版心。只不過,這個版心的寬度具備響應式的效果。

也就是說,在 Bootstrap 中,咱們通常用 .container 類來表示版心。

格式舉例:

<div class="topbar">
  <div class="container">
    <!--
      此處的代碼會顯示在一個固定寬度且居中的容器中
      該容器的寬度會跟隨屏幕的變化而變化
    -->
  </div>
</div>

這個 container 類咱們本身其實也能夠寫,經過媒體查詢便可實現。

柵格參數

柵格系統最主要的操做是:利用 css 的響應式去作一套行列布局的預置樣式。

柵格參數以下:

咱們尤爲要記住各個屏幕的尺寸和類前綴

組件

一個按鈕稱之爲樣式;兩個按鈕在一塊兒,就能夠稱之爲組件。

組件在官網有介紹:

咱們如今須要關注的不是組件怎麼用,而是裏面有哪些組件,避免重複造輪子:別人已經作得很好了,不須要咱們再重複。

JS 組件

JS 組件在官網有介紹:

這裏麪包含了不少帶交互的組件。好比輪播圖:

博主提供的下載連接

空結構的工程文件的下載地址:(lib文件夾裏包含了各類庫和 Bootstrap 中文文檔)

仍是那句話:若是須要哪一個樣式,直接根據文檔的指引,在相應的元素里加指定的類名便可。

個人公衆號

想學習代碼以外的軟技能?不妨關注個人微信公衆號:生命團隊(id:vitateam)。

掃一掃,你將發現另外一個全新的世界,而這將是一場美麗的意外:

相關文章
相關標籤/搜索