Bootstrap介紹
Bootstrap是Twitter開源的基於HTML、CSS、JavaScript的前端框架。它是爲實現快速開發Web應用程序而設計的一套前端工具包。它支持響應式佈局,而且在V3版本以後堅持移動設備優先。css
爲何要使用Bootstrap?
在Bootstrap出現以前:html
命名:重複、複雜、無心義(想個名字費勁)前端
樣式:重複、冗餘、不規範、不和諧npm
頁面:錯亂、不規範、不和諧bootstrap
在使用Bootstrap以後: 各類命名都統一而且規範化。 頁面風格統一,畫面和諧。canvas
Bootstrap下載
官方地址:https://getbootstrap.comapi
中文地址:http://www.bootcss.com/瀏覽器
咱們使用V3版本的Bootstrap,咱們下載的是用於生產環境的Bootstrap。前端框架
Bootstrap環境搭建
目錄結構:框架
bootstrap-3.3.7-dist/ ├── css // CSS文件 │ ├── bootstrap-theme.css // Bootstrap主題樣式文件 │ ├── bootstrap-theme.css.map │ ├── bootstrap-theme.min.css // 主題相關樣式壓縮文件 │ ├── bootstrap-theme.min.css.map │ ├── bootstrap.css │ ├── bootstrap.css.map │ ├── bootstrap.min.css // 核心CSS樣式壓縮文件 │ └── bootstrap.min.css.map ├── fonts // 字體文件 │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ └── glyphicons-halflings-regular.woff2 └── js // JS文件 ├── bootstrap.js ├── bootstrap.min.js // 核心JS壓縮文件 └── npm.js
處理依賴
因爲Bootstrap的某些組件依賴於jQuery,因此請確保下載對應版本的jQuery文件,來保證Bootstrap相關組件運行正常。
柵格系統
Bootstrap 提供了一套響應式、移動設備優先的流式柵格系統,隨着屏幕或視口(viewport)尺寸的增長,系統會自動分爲最多12列。它包含了易於使用的預約義類,還有強大的mixin 用於生成更具語義的佈局。
簡介
柵格系統用於經過一系列的行(row)與列(column)的組合來建立頁面佈局,你的內容就能夠放入這些建立好的佈局中。下面就介紹一下 Bootstrap 柵格系統的工做原理:
- 「行(row)」必須包含在
.container
(固定寬度)或.container-fluid
(100% 寬度)中,以便爲其賦予合適的排列(aligment)和內補(padding)。 - 經過「行(row)」在水平方向建立一組「列(column)」。
- 你的內容應當放置於「列(column)」內,而且,只有「列(column)」能夠做爲行(row)」的直接子元素。
- 相似
.row
和.col-xs-4
這種預約義的類,能夠用來快速建立柵格佈局。Bootstrap 源碼中定義的 mixin 也能夠用來建立語義化的佈局。 - 經過爲「列(column)」設置
padding
屬性,從而建立列與列之間的間隔(gutter)。經過爲.row
元素設置負值margin
從而抵消掉爲.container
元素設置的padding
,也就間接爲「行(row)」所包含的「列(column)」抵消掉了padding
。 - 負值的 margin就是下面的示例爲何是向外突出的緣由。在柵格列中的內容排成一行。
- 柵格系統中的列是經過指定1到12的值來表示其跨越的範圍。例如,三個等寬的列可使用三個
.col-xs-4
來建立。 - 若是一「行(row)」中包含了的「列(column)」大於 12,多餘的「列(column)」所在的元素將被做爲一個總體另起一行排列。
- 柵格類適用於與屏幕寬度大於或等於分界點大小的設備 , 而且針對小屏幕設備覆蓋柵格類。 所以,在元素上應用任何
.col-md-*
柵格類適用於與屏幕寬度大於或等於分界點大小的設備 , 而且針對小屏幕設備覆蓋柵格類。 所以,在元素上應用任何.col-lg-*
不存在, 也影響大屏幕設備。
經過研究後面的實例,能夠將這些原理應用到你的代碼中。
Bootstrap全局樣式
排版、按鈕、表格、表單、圖片等咱們經常使用的HTML元素,Bootstrap中都提供了全局樣式。
咱們只要在基本的HTML元素上經過設置class就可以應用上Bootstrap的樣式,從而使咱們的頁面更美觀和諧。
移動設備優先
爲了確保適當的繪製和觸屏縮放,須要在 <head>
之中添加 viewport 元數據標籤。
<meta name="viewport" content="width=device-width, initial-scale=1">
Normalize.css
爲了加強跨瀏覽器表現的一致性,咱們使用了 Normalize.css,這是由 Nicolas Gallagher 和 Jonathan Neal 維護的一個CSS 重置樣式
佈局容器
Bootstrap 須要爲頁面內容和柵格系統包裹一個 .container
容器。咱們提供了兩個做此用處的類。注意,因爲 padding
等屬性的緣由,這兩種 容器類不能互相嵌套。
.container
類用於固定寬度並支持響應式佈局的容器。
<div class="container"> ... </div>
.container-fluid
類用於 100% 寬度,佔據所有視口(viewport)的容器。
<div class="container-fluid"> ... </div>
標題相關
標題
<h1>一級標題36px</h1> <h2>二級標題30px</h2> <h3>三級標題24px</h3> <h4>四級標題18px</h4> <h5>五級標題14px</h5> <h6>六級標題12px</h6> <!--除了使用h標籤,Bootstrap內置了相應的全局樣式--> <!--內聯標籤應用標題樣式--> <span class="h1">一級標題36px</span> <span class="h2">二級標題30px</span> <span class="h3">三級標題24px</span> <span class="h4">四級標題18px</span> <span class="h5">五級標題14px</span> <span class="h6">六級標題12px</span>
副標題
<!--一級標題中嵌入小標題--> <h1>一級標題<small>小標題</small></h1>
文本對齊
<!--文本對齊--> <p class="text-left">文本左對齊</p> <p class="text-center">文本居中</p> <p class="text-right">文本右對齊</p>
文本大小寫
<!--大小寫--> <p class="text-lowercase">Lowercased text.</p> <p class="text-uppercase">Uppercased text.</p> <p class="text-capitalize">Capitalized text.</p>
表格
Class | 描述 |
.table-striped | 條紋狀表格 |
.table-bordered | 帶邊框的表格 |
.table-hover | 鼠標懸停變色的表格 |
.table-condensed | 緊縮型表格 |
.table-responsive | 響應式表格 |
狀態類
Class | 描述 |
---|---|
.active |
鼠標懸停在行或單元格上時所設置的顏色 |
.success |
標識成功或積極的動做 |
.info |
標識普通的提示信息或動做 |
.warning |
標識警告或須要用戶注意 |
.danger |
標識危險或潛在的帶來負面影響的動做 |
表單
內聯表單
表單狀態
帶圖標的表單
按鈕
<a class="btn btn-default" href="#" role="button">Link</a> <button class="btn btn-default" type="submit">Button</button> <input class="btn btn-default" type="button" value="Input"> <input class="btn btn-default" type="submit" value="Submit">
按鈕樣式
<!-- Standard button --> <button type="button" class="btn btn-default">(默認樣式)Default</button> <!-- Provides extra visual weight and identifies the primary action in a set of buttons --> <button type="button" class="btn btn-primary">(首選項)Primary</button> <!-- Indicates a successful or positive action --> <button type="button" class="btn btn-success">(成功)Success</button> <!-- Contextual button for informational alert messages --> <button type="button" class="btn btn-info">(通常信息)Info</button> <!-- Indicates caution should be taken with this action --> <button type="button" class="btn btn-warning">(警告)Warning</button> <!-- Indicates a dangerous or potentially negative action --> <button type="button" class="btn btn-danger">(危險)Danger</button> <!-- Deemphasize a button by making it look like a link while maintaining button behavior --> <button type="button" class="btn btn-link">(連接)Link</button>
按鈕大小
<p> <button type="button" class="btn btn-primary btn-lg">(大按鈕)Large button</button> <button type="button" class="btn btn-default btn-lg">(大按鈕)Large button</button> </p> <p> <button type="button" class="btn btn-primary">(默認尺寸)Default button</button> <button type="button" class="btn btn-default">(默認尺寸)Default button</button> </p> <p> <button type="button" class="btn btn-primary btn-sm">(小按鈕)Small button</button> <button type="button" class="btn btn-default btn-sm">(小按鈕)Small button</button> </p> <p> <button type="button" class="btn btn-primary btn-xs">(超小尺寸)Extra small button</button> <button type="button" class="btn btn-default btn-xs">(超小尺寸)Extra small button</button> </p>
圖片
<img src="..." class="img-responsive" alt="Responsive image">
圖片形狀
<img src="..." alt="..." class="img-rounded"> <img src="..." alt="..." class="img-circle"> <img src="..." alt="..." class="img-thumbnail">
輔助類
文本顏色
<p class="text-muted">...</p> <p class="text-primary">...</p> <p class="text-success">...</p> <p class="text-info">...</p> <p class="text-warning">...</p> <p class="text-danger">...</p>
背景顏色
<p class="bg-primary">...</p> <p class="bg-success">...</p> <p class="bg-info">...</p> <p class="bg-warning">...</p> <p class="bg-danger">...</p>
關閉按鈕
<button type="button" class="close" aria-label="Close"><span aria-hidden="true">×</span></button>
下拉三角
<span class="caret"></span>
快速浮動
<div class="pull-left">...</div> <div class="pull-right">...</div>
內容塊居中
<div class="center-block">...</div>
清除浮動
<!-- Usage as a class --> <div class="clearfix">...</div>
顯示與隱藏
<div class="show">...</div> <div class="hidden">...</div>
經常使用Bootstrap組件
- 字體圖標
- 下拉菜單
- 按鈕組
- 輸入框俎
- 導航
- 分頁
- 標籤和徽章
- 頁頭
- 縮率圖
- 進度條
模擬滾動的進度條:
var $d1 = $("#d1");
var width = 0;
var theID = setInterval(setValue, 200);
function setValue() {
if (width === 100) {
clearInterval(theID);
} else {
width++;
$d1.css("width", width+"%").text(width+"%");
}
}
響應式開發
爲何要進行響應式開發?
隨着移動設備的流行,網頁設計必需要考慮到移動端的設計。同一個網站爲了兼容PC端和移動端顯示,就須要進行響應式開發。
什麼是響應式?
利用媒體查詢,讓同一個網站兼容不一樣的終端(PC端、移動端)呈現不一樣的頁面佈局。
用到的技術:
CSS3@media查詢
用於查詢設備是否符合某一特定條件,這些特定條件包括屏幕尺寸、是否可觸摸、屏幕精度、橫屏豎屏等信息。
常見屬性:
- device-width, device-height 屏幕寬、高
- width,height 渲染窗口寬、高
- orientation 設備方向
- resolution 設備分辨率
語法:
@media mediatype and|not|only (media feature) { CSS-Code; }
不一樣的媒體使用不一樣的stylesheet
<link rel="stylesheet" media="mediatype and|not|only (media feature)" href="mystylesheet.css">
viewport
手機瀏覽器是把頁面放在一個虛擬的"窗口"(viewport)中,一般這個虛擬的"窗口"(viewport)比屏幕寬,這樣就不用把每一個網頁擠到很小的窗口中(這樣會破壞沒有針對手機瀏覽器優化的網頁的佈局),用戶能夠經過平移和縮放來看網頁的不一樣部分。
設置viewport
一個經常使用的針對移動網頁優化過的頁面的 viewport meta 標籤大體以下:
<meta name=」viewport」 content=」width=device-width, initial-scale=1, maximum-scale=1″>
- width:控制 viewport 的大小,能夠指定的一個值,若是 600,或者特殊的值,如 device-width 爲設備的寬度(單位爲縮放爲 100% 時的 CSS 的像素)。
- height:和 width 相對應,指定高度。
- initial-scale:初始縮放比例,也便是當頁面第一次 load 的時候縮放比例。
- maximum-scale:容許用戶縮放到的最大比例。
- minimum-scale:容許用戶縮放到的最小比例。
- user-scalable:用戶是否能夠手動縮放。
Bootstrap的柵格系統
- container
- row
- column
注意事項: 使用Bootstrap的時候不要讓本身的名字與Bootstrap的類名衝突。
JavaScript插件
Bootstrap實例精選:
- 封面圖
- Carousel
- 博客頁面
- 控制檯
- 登陸頁
- Offcanvas
實踐:
- 後臺管理頁面(修改Dashbord)
- 經常使用組件練習