## 柵格系統
Bootstrap 提供了一套響應式、移動設備優先的流式柵格系統,隨著屏幕或視口(viewport)尺寸的增加,系統會自動分為最多12列。
### 移動設備優先
在 HTML5 的項目中,我們做了移動端的項目。它有一份非常重要的 meta,用于設置屏幕和設備等寬以及是否運行用戶縮放,及縮放比例的問題。
//分別為:屏幕寬度和設備一致、初始縮放比例、最大縮放比例和禁止用戶縮放
~~~html
<meta name="viewport" content="width=device-width, initial-scale=1,
maximum-scale=1, user-scalable=no">
~~~
### 布局容器
Bootstrap 需要為頁面內容和柵格系統包裹一個.container 容器。由于 padding 等屬性的原因,這兩種容器類不能相互嵌套。
**固定寬度**
~~~html
<div class="container">
...
</div>
~~~
**100%寬度**
~~~html
<div class="container-fluid">
...
</div>
~~~
柵格系統中,瀏覽器會隨著屏幕的大小的增減自動分配最多12 列。通過一系列的行(row)與列(column)的組合來創建頁面布局。
1. “行(row)”必須包含在 `.container `(固定寬度)或` .container-fluid `(100%寬度)中,以便為其賦予合適的排列(aligment)和內補(padding)。
2. 通過“行(row)”在水平方向創建一組“列(column)”。
3. 你的內容應當放置于“列(column)”內,并且,只有“列(column)”可以作為行(row)”的直接子元素。
4. 類似 .row 和 .col-xs-4 這種預定義的類,可以用來快速創建柵格布局。 Bootstrap 源碼中定義的 mixin 也可以用來創建語義化的布局。
5. 通過為“列(column)”設置 padding 屬性,從而創建列與列之間的間隔(gutter)。通過為 `.row` 元素設置負值 margin 從而抵消掉為` .container` 元素設置的 padding,也就間接為“行(row)”所包含的“列(column)”抵消掉了 padding。
6. 柵格系統中的列是通過指定 1 到 12 的值來表示其跨越的范圍。例如,三個等寬的列可以使用三個 .`col-xs-4` 來創建。
7. 如果一“行(row)”中包含了的“列(column)”大于 12,多余的“列(column)”所在的元素將被作為一個整體另起一行排列。
10. 柵格類適用于與屏幕寬度大于或等于分界點大小的設備 , 并且針對小屏幕設備覆蓋柵格類。 因此,在元素上應用任何 `.col-md-*` 柵格類適用于與屏幕寬度大于或等于分界點大小的設備 ,并且針對小屏幕設備覆蓋柵格類。因此,在元素上應用任何` .col-lg-* `不存在, 也影響大屏幕設備。

### 列偏移
~~~html
<div class="row">
<div class="col-md-8 a">8</div>
<div class="col-md-3 a col-md-offset-2">3</div>
</div>
~~~
### 列嵌套
~~~html
<div class="row">
<div class="col-md-9 a" style="padding: 0;">
<div class="col-md-4 a">4</div>
<div class="col-md-4 a">4</div>
<div class="col-md-4 a">4</div>
</div>
<div class="col-md-3 a">3</div>
</div>
~~~
### 交換位置
~~~html
<div class="row">
<div class="col-md-9 col-md-push-3 a">
9
</div>
<div class="col-md-3 col-md-pull-9 a">3</div>
</div>
~~~