利用 Bootstrap 進行快速 Web開發
瞭解如何使用 Bootstrap 快速開發網站和 Web 應用程式(包括移動友好型應用程式)。Bootstrap 以 LESS 專案為基礎,由 Twitter 的內部工程師開發,它為 Web 應用程式 UI 提供了一致的框架。
瀏覽器開發人員最後將其支援全都聚集在標準上,比如 HTML5、級聯樣式表 2 級 (CSS2) 和 CSS3。這些標準減少了瀏覽器行為自 Web 全面啟動開始以來困擾開發人員和設計人員的許多不合理變化。為了掩蓋遺留問題並適應遺留瀏覽器,一些開發人員創作出了 Web 頁面框架。這類工具使得即使是普通人也可以開發適合大多數使用者的網站。
其中一個最受歡迎的 Web 頁面框架來自一個預料之外的來源。Twitter 的開發人員厭倦了設法解決用於網頁開發的許多不同元件。他們建立了單一的框架來提供 Web 頁面設計中的最常見元素,同時支援合理的靈活性。他們以 Bootstrap(一種開源專案)的形式與全世界共享這一工具包。
Bootstrap 以 LESS 專案為基礎,增強了 CSS 語言。Bootstrap 還包括基本的 CSS 元素,這些元素用於排印、表單、按鈕、表格、網格、導航、警告等。Bootstrap 的主要目標是幫助 Web 開發人員加快其專案。這也是目前 GitHub 軟體庫中最受歡迎的專案。個人、小型團隊,甚至大型組織都在使用 Bootstrap。
本文將向您介紹如何使用 Bootstrap 快速開發網站和應用程式,包括移動友好型應用程式。本文反映了開發人員的觀點,而不是設計人員的觀點。要想從本文和 Bootstrap 中獲益,您需要掌握 HTML 和 CSS 的應用知識。我在 “在 CSS 中使用 LESS 實現更多的功能” 中介紹的 LESS 專案的一些基本知識可幫助您瞭解本文的主要程式碼示例。
入門
下載已編譯的 Bootstrap 資料包(參見 參考資料)。我在本文中使用的是 V2.3.2。下載內容包括 Bootstrap 的關鍵元素 CSS,以及一些有用的影象和 JavaScript 檔案。您可以根據我在文中的描述為 Web 頁面提供 HTML。(參見 下載 部分,獲取本文的樣例程式碼。)Bootstrap 文件中不包含框架支援的許多設計選項的樣例 HTML。但是 Bootstrap 文件頁面(儘管其本身已說明了 Bootstrap 的靈活性)還不足以解釋真正起作用的基本設計原則。
響應式 Web 設計
檢視 Web 頁面的裝置包括小型行動電話,以及大於普通臺式計算機外形規格的顯示器。在響應式設計 中,一開始就在 Web 頁面中構建了靈活性,這樣使用者就可以通過所有裝置檢視頁面。響應式設計的核心是 CSS3 媒體查詢,這是根據裝置性質(尤其是使用者的顯示器大小)來呼叫 CSS 規則的一種標準方法。
對於典型開發人員啟動的各種專案,我建議首先使用啟用了響應特性的固定佈局。固定佈局更易於組織,而且響應特性支援從一開始就培養考慮網站如何在移動裝置上執行的良好習慣。如果專案要應用於生產環境中,而且您正在與設計人員合作,那麼設計人員應能夠使您的檔案適用於更加適合的其他任何模型。
針對 Bootstrap 的 HTML
清單 1 是一個有用的框架 HTML 檔案,用於結合使用 Bootstrap 與一個固定佈局和響應特性:
清單 1. 用於 Bootstrap 專案的基本框架 HTML 檔案 (listing1.html)
<!doctype html> <html> <head> <title>Bootstrap 101 Template</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link href="css/bootstrap.min.css" rel="stylesheet" media="screen"> <link href="css/bootstrap-responsive.min.css" rel="stylesheet"> </head> <body> <h1>Hello world!</h1> <div> ... <!-- The main HTML will go here --> </div> <script src="http://code.jquery.com/jquery.js"></script> <script src="js/bootstrap.min.js"></script> </body> </html>
縮小版本
在 Bootstrap 下載中,請注意,每個 CSS 和 JavaScript 檔案有兩個版本可用(例如 bootstrap.js 和 bootstrap.min.js)。第一種形式是一個常規檔案,第二種形式是壓縮檔案或 “縮小檔案”。就像在本文中一樣,使用縮小版本即可實現最有效的頁面載入。
listing1.html 的開始之處的 DOCTYPE
宣告將其標記為一個 HTML5 檔案。head
元素內的 meta
標記控制移動的小螢幕佈局。(為方便起見,我將它們稱作 meta/viewport
標記。)預設情況下,大多數移動裝置按比例縮小 Web 頁面,使之適應螢幕大小,就像在桌面瀏覽器視窗中一樣。這就是為什麼許多網站上的文字和影象在手機瀏覽器中看起來很小的原因。meta/viewport
宣告中的 initial-scale=1.0
部分禁用了這一行為,告訴裝置要保持頁面的原有尺寸。該宣告表示 Web 設計人員(在本例中為 Bootstrap)已經完成了實現較小螢幕的響應式設計這一任務,所以在預設情況下,沒必要採用蠻力方法。
稍後,清單 1 的 head
標記是 Bootstrap CSS 的連結。在檔案的末尾,載入 jQuery 和 Bootstrap 實用程式 JavaScript。這些指令碼在末尾執行可實現最佳效能。
設定程式碼
當使用 Bootstrap(或任何 Web 支援檔案集)時,您可以從多種方法中選擇用來設定 HTML 和其他程式碼的方法。我建議您建立一個資料夾來儲存自己的專案,然後將 Bootstrap 檔案及其完整的資料夾結構複製到專案資料夾中。將您自己的 HTML 檔案放在最頂層,並將您自己的 CSS、JavaScript 和影象檔案放在相應的 Bootstrap 子資料夾中(這些資料夾的名稱分別為 css、js 和 img)。然後,整體結構如下所示:
. |—— index.html |—— [Also any other site HTML] |—— css | |—— bootstrap.min.css | |—— bootstrap-responsive.min.css | |—— [Also nonminimized Bootstrap files plus site-specific CSS] |—— js | |—— bootstrap.min.js | |—— [Also nonminimized Bootstrap files plus site-specific JavaScript] |—— img |—— [The PNGs that come with Bootstrap plus site-specific images]
CSS 裝置調整
meta/viewport
標記是當前的約定,用於將頁面調整為裝置的可視瀏覽器空間。全球資訊網聯盟 (World Wide Web Consortium, W3C) 正在準備一種替換機制,該機制以一種新的 CSS 規則的形式出現(參見 參考資料)。清單 1 中 meta/viewport
宣告的等效 CSS 是:
@viewport { width: extend-to-zoom 100%; zoom: 1.0; }
目前,您可以將這個程式碼包含在您的 CSS 中,並在 HTML 中保留 meta/viewport
標記。當 CSS 形式受到廣泛支援時,您就可以刪除meta/viewport
宣告。
網格系統
清單 1 中的主要容器 div
表示使用 Bootstrap 的固定佈局。放入該容器中的 HTML 合併到了 Bootstrap 的網格系統 中。
如果還能想起曾經看到過的大部分 Web 頁面,那麼您就會認識到它們被分成了一系列的塊。位於頁面頂部的塊可能擁有一個徽標。導航可能位於左邊或右邊的塊中,而內容索引可能也適合放在那個位置。甚至可能出現另一個塊包含一個腳註的情況。主要內容本身可能被劃分成多個皮膚或塊。過去,Web 設計人員通過使用 CSS 盒子模型(box model)手工設定所有這些塊。
網格系統是將盒子佈置(比如剛剛描述的)抽象為行和列的一種方法。Bootstrap 為此類網格提供了一個核心的 CSS。您可以通過使用特殊的類,通過嵌入 div
元素將內容放置在任何佈局的盒子中。
圖 1 顯示了一個有用的模板,這個模板最初由 Aaron K. White 開發,用於視覺化 Bootstrap 的網格系統並規劃如何安排您的內容(參見 參考資料)。在本文中,我做了一些修改,以便在本文中更容易讀取文字。
圖 1. Aaron K. White 的 Bootstrap 網格系統模板
Bootstrap 網格系統的每一行最多有 12 塊,每兩個塊之間留有小槽來提供間隔。您可以擁有無限數量的行,每一行的高度任您設定。每個塊是 70 畫素寬,小槽是 30 畫素寬。Bootstrap 還為頁面正文設定一個 30 畫素的左邊距。網格系統的設計目標是進行基本的佈置併為您分配空間,因此,在理想情況下,您只需關注要在網格中放入什麼即可。
填充 HTML 模板
在 “在 CSS 中使用 LESS 實現更多的功能” 中,我使用了一個響應式設計示例(根據 developerWorks 博主 Bob Leah 的 示例)來展示 LESS 工具如何增強 CSS 語法。Bootstrap 是一種功能強大的工具,可簡化來自該程式碼的許多關注。清單 2 是來自這篇文章的 HTML(程式碼 下載 中的 responsive.html),重寫該 HTML(如 listing2.html),以便在 Bootstrap 的固定佈局網格系統中執行它,並使用 Bootstrap 的響應特性進行補充:
清單 2. 用於 Bootstrap (listing2.html) 的示例 HTML 檔案
<!doctype html> <html lang="en-US"> <head> <title>Responsive Bootstrap page</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link href="css/bootstrap.min.css" rel="stylesheet" media="screen"> <link href="css/bootstrap-responsive.min.css" rel="stylesheet"> </head> <body> <div> <h1>Hello world!</h1> <div> <div id="banner"> <!-- Photo by Jake Sutton http://www.flickr.com/photos/44124405407@N01/510899838 --> <img src="img/sky-slim.jpg"> </div> </div> <div> <div id="main-content"> <p>Humpts dumptus in muro sedet </p> <p>Veni vidi vici </p> <p>Alea iacta est </p> <hr> </div> <div> <div>One</div> <div> The quick brown fox jumps... </div> <div> <div>Two</div> <div> Over the lazy dog... </div> </div> <div> <div>Three</div> <div> To get to the other side </div> </div> </div> </div> <div> <div id="footer"> © Nobody! This document is placed in the public domain. </div> </div> </div> <script src="http://code.jquery.com/jquery.js"></script> <script src="js/bootstrap.min.js"></script> </body> </html>
在 清單 2 中,Bootstrap 刪除了我需要在較舊的響應式設計程式碼中手動完成的任務。因為頁面使用了 Bootstrap 的網格系統,所以我不再需要使用專門的 CSS 來操作或調整盒子大小。仔細安排可視空間的 CSS 也不需要專門的 CSS,因為 Bootstrap 網格在各個塊之間設定了很好的預設值。此外,我不需要任何 CSS 來進行媒體查詢(media query)並在設計引數中設定響應,因為 Bootstrap 的響應特性會負責完成這些任務。
您可以在清單 2 中看到 div
標記的巢狀。巢狀的 div
使用了 Bootstrap 網格類。具有 container
類的 div
是整個固定網格佈局的包裝程式。具有 row
類的每個 div
在網格中定義了盒子的一行。具有 span4
類的 div
定義了一個橫跨 4 個盒子的塊。具有 span12
類的 div
定義橫跨 12 個盒子的塊 — 頁面的整個寬度。Bootstrap 有一個 spanN
類,可橫跨從 1 到 12 的任意數量 N 的盒子。
圖 2 顯示了所生成的頁面在移動瀏覽器中的外觀(執行 Android 4.1.1 的 Samsung Galaxy S3 上的 Google Chrome):
圖 2. 清單 2 中的瀏覽器輸出
特定於站點的 CSS
圖 2 中所示頁面的主要元素的佈置是正確的。但是頁面缺少讓其更吸引眼球的樣式元素,所以我將新增一些 CSS(樣例程式碼 中的 main.css)來實現這一目標。Bootstrap CSS 本身是使用 LESS 編寫的,但我通常高度推薦使用 LESS 而不是純文字的 CSS。但在這個簡單示例中,清單 3 中的純文字的 CSS 就足夠用了:
清單 3. 向示例 HTML (main.css) 中新增基本設計的 CSS
.widget-content { margin: 10px; padding: 1px; background-color: #DDDDDD; } .widget-title { font-weight: bold; padding: 10px; background-color: #EEEEEE; } .widget-text { padding: 10px; background-color: #FCFCFC; } #footer { text-align: center; font-size: small; }
當然,清單 2 中的 HTML 現在需要 清單 3 中的特定於站點的 CSS 的一個附加連結。在 樣例程式碼 中,包含 main.css 連結的已更新的 HTML 位於 main.html 檔案中。圖 3 顯示了結果頁面,其中的 main.css 更為美觀:
圖 3. 來自 main.html 的瀏覽器輸出
結束語
對於我和其他許多人來說,我們的優勢是程式碼和資料,而不是視覺和其他感官設計,所以 Bootstrap 就是一個極其寶貴的工具。我可以關注一個 Web 專案的基本程式碼和資料,並將其繪成初始形狀,然後與設計人員合作來美化頁面。Bootstrap 對一些特別微妙的領域很有幫助,比如移動裝置設計和其他小螢幕設定。它還附帶了一個庫,其中包含按鈕、導航樣式和其他可重用工具。最重要的是,Bootstrap 包含的大量程式碼可減少 Web 瀏覽器和平臺之間的許多令人煩惱的變化。
如此多的專案都在使用 Bootstrap,以至於許多人現在可以立即識別出基於的 Bootstrap 的站點。這種識別有時候可以建立一種非獨創性的效果。一名優秀的設計人員不僅可以給使用 Bootstrap 生成的站點提供自己的不同字元,而且還可以確保該站點的基本元素和響應元素都專用於其內容和使用。但是,只有少數幾個專案開始研究這些考慮因素。Bootstrap 尤其適用於將思想的閃光點快速轉變為 Web 專案。
下載
描述 | 名字 | 大小 |
---|---|---|
樣例程式碼 | wa-bootstrapcode.zip | 41KB |
參考資料
學習
- CSS Device Adaptation:關注 W3C 建議的 CSS 裝置適配標準。
- “在 CSS 中使用 LESS 實現更多的功能”(作者:Uche Ogbuji,developerWorks,2013 年 7 月):瞭解 LESS 專案以及響應式 Web 設計的基礎知識。
- “使用 CouchDB 和 Bootstrap 設計 Web 應用程式原型”(作者:Uche Ogbuji,developerWorks,2013 年 6 月):瞭解如何結合使用 Apache CouchDB 和 Bootstrap,以一種完全分離展示和資料庫層的方式快速啟動 Web 應用程式開發。
- “Get started with CSS”(作者:Daniel J. Lewis,developerWorks,2011 年 5 月):瞭解標準化的 CSS 樣式設計技術,包括 CSS 2.1 和跨瀏覽器的 CSS3。
- “使用 CSS 媒體查詢建立響應式網站”(作者:Jeff Ball,developerWorks,2012 年 10 月):瞭解如何對桌面網站、行動電話和模板使用 CSS 媒體查詢。
- “響應式 Web 設計”(作者:Ethan Marcotte,A List Apart,2010 年 5 月):瞭解有關響應式設計的更多資訊。
- Code example of Responsive web design using CSS3 Media Queries:檢視由 Bob Leah 編寫的適用於本文的響應式設計的程式碼示例。
- 關注 Twitter 上的 developerWorks。
- developerWorks 演示中心:觀看演示,從為初學者準備的產品安裝,到為經驗豐富的開發人員準備的高階功能。
獲得產品和技術
- Bootstrap:深入研究 Bootstrap 並在官方專案頁面上獲取程式碼。
- Bootstrap Illustrator Template:藉助 Aaron K. White 提供的模板來繪製 Bootstrap 設計的網格。
- 以最適合您的方式 評估 IBM 產品:下載產品試用版,線上試用產品,在雲環境中使用產品。或者在 SOA 沙盒 中花費幾小時來了解如何高效地實現面向服務的架構。
討論
- 加入 developerWorks 社群。探索由開發人員推動的部落格、論壇、群組和維基,並與其他 developerWorks 使用者進行交流。
相關文章
- 建站教程:利用Bootstrap進行快速Web開發bootWeb
- 如何快速開始進行echart元件開發元件
- python:利用asyncio進行快速抓取Python
- Web | 淺談用Python進行Web開發WebPython
- 如何利用 github 進行多人協作開發Github
- [英文]利用Visual Studio.NET 進行 ASP.NET的WEB開發 (轉)ASP.NETWeb
- 快速開發,7個 Bootstrap 線上編輯器boot
- win 環境使用easyswoole利用docker進行開發Docker
- bootstrap-sass 快速開始boot
- 利用Git+GitHub進行團隊協作開發Github
- 利用雙環 TDD 進行由外向內的開發
- 快速web開發框架——learun frameworkWeb框架Framework
- 使用MEAN進行現代化WEB開發Web
- Web 開源 CSS 框架 Bootstrap 文件、Bootstrap 下載WebCSS框架boot
- 利用ASP開發Web應用 (轉)Web
- Web 開發進階指南Web
- 如何快速開發 Web 聊天室Web
- Gradle進階:1: 結合spring boot進行web開發GradleSpring BootWeb
- 《Bootstrap 4 Web設計與開發實戰》簡介bootWeb
- <<快速入手Rust>>1.使用playlaygroud進行簡單快速的線上rust開發Rust
- iOS開發中利用AFNetworking進行斷點下載iOS斷點
- dotnet core使用開源元件FastHttpApi進行web應用開發元件ASTHTTPAPIWeb
- 為什麼要選擇Python進行Web開發?PythonWeb
- 快速利用 vue 或者 react 開發 chrome 外掛VueReactChrome
- Web開發初探之JavaScript 快速入門WebJavaScript
- 在雲中利用開源軟體進行開發以提高創新能力
- 利用培訓教育原始碼進行教育app開發的難點原始碼APP
- 【視訊教學】如何利用高德地圖IOS SDK進行開發?地圖iOS
- Web快速開發平臺個人之淺見Web
- 快速提高Android開發效率的Web工具AndroidWeb
- Bootstrap快速入門boot
- 請教在做web應用中如何利用SSL進行安全控制Web
- Python 使用 Web3 進行 ERC20 代幣開發PythonWeb
- Web快速開發平臺,基於二次開發平臺Web
- Android開發必看-快速提高 Android 開發效率的 Web 工具AndroidWeb
- 7 個 Bootstrap 線上編輯器用於快速開發響應式網站boot網站
- web專案快速開發使用UI框架優勢WebUI框架
- 利用IDEA進行JNI開發:生成Windows平臺下的dll檔案IdeaWindows