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-*
不存在, 也影響大屏幕設備。
二,柵格參數
可以通過下表了解柵格系統的參數
三,實例
(1)從堆疊到水平排列
使用單一的一組 .col-md-*
柵格類,就可以創建一個基本的柵格系統,在手機和平板設備上一開始是堆疊在一起的(超小屏幕到小屏幕這一范圍),在桌面(中等)屏幕設備上變為水平排列。所有“列(column)必須放在 ” .row
內。

運行的結果如下所示
當然在手機里看到的會是另一種效果,這里就不使用手機了,最簡單的測試方式,就是將瀏覽器窗口縮小到手機屏幕大小,就可以實現手機瀏覽相同的效果,如圖
使用這種方式一行最多只能顯示12列,多的列將會在下一行顯示,如下面的例子

結果
當我們使用 .col-md-*屬性的時候,后面的數字代表了我們想要這1列相對於12列中占幾列,如下例子:

(2)移動設備與桌面屏幕不同顯示
當我們想讓移動設備和我們使用計算機屏幕顯示的結果不同時,我們可以使用適合移動屏幕的屬性來設置。
例如我想讓一行在計算機瀏覽器中看到的是 1:1的比例,而在手機屏幕看到的是 9:3的比例,如下所示:

運行以上代碼,我們在計算機瀏覽器中看到的是
在手機中看到的應該是這個樣子的
上面我們設置了手機和計算機的瀏覽效果,平板的效果可以通過col-sm-*來設置,這個在這里就不寫了。
(3)列偏移
使用 .col-md-offset-*
類可以將列向右側偏移。這些類實際是通過使用 *
選擇器為當前元素增加了左側的邊距(margin)。例如,.col-md-offset-4
類將 .col-md-4
元素向右側偏移了4個列(column)的寬度。
這里將給出官網給的列子,我自己就不再寫例子了,大家可以試一下,

運行的結果
(4)嵌套列
為了使用內置的柵格系統將內容再次嵌套,可以通過添加一個新的 .row
元素和一系列 .col-sm-*
元素到已經存在的.col-sm-*
元素內。被嵌套的行(row)所包含的列(column)的個數不能超過12(其實,沒有要求你必須占滿12列)。

(5)列排序
通過使用 .col-md-push-*
和 .col-md-pull-*
類就可以很容易的改變列(column)的順序。

運行結果:
以上的內容只是基本的一些小知識點,需要學習更多,大家可以到查看官方文檔。謝謝