學習要點: 1.移動設備優先 2.佈局容器 3.柵格系統 主講教師:李炎恢 本節課我們主要學習一下 Bootstrap 的柵格系統,提供了一套響應式、移動設備優先的流式柵格系統。 一.移動設備優先 在 HTML5 的項目中,我們做了移動端的項目。它有一份非常重要的 meta,用於設置屏幕和設備等寬以 ...
學習要點:
1.移動設備優先
2.佈局容器
3.柵格系統
主講教師:李炎恢
本節課我們主要學習一下 Bootstrap 的柵格系統,提供了一套響應式、移動設備優先的流式柵格系統。
一.移動設備優先
在 HTML5 的項目中,我們做了移動端的項目。它有一份非常重要的 meta,用於設置屏幕和設備等寬以及是否運行用戶縮放,及縮放比例的問題。
//分別為:屏幕寬度和設備一致、初始縮放比例、最大縮放比例和禁止用戶縮放
<meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=no">
二.佈局容器
Bootstrap 需要為頁面內容和柵格系統包裹一個.container 容器。由於 padding 等屬性的原因,這兩種容器類不能相互嵌套。
//固定寬度
<div class="container"> ... </div>
//100%寬度
<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.負值的 margin 就是下麵的示例為什麼是向外突出的原因。在柵格列中的內容排成一行。
7.柵格系統中的列是通過指定 1 到 12 的值來表示其跨越的範圍。例如,三個等寬的列可以使用三個 .col-xs-4 來創建。
8.如果一“行(row)”中包含了的“列(column)”大於 12,多餘的“列(column) ”所在的元素將被作為一個整體另起一行排列。
9.柵格類適用於與屏幕寬度大於或等於分界點大小的設備 , 並且針對小屏幕設備覆蓋柵格類。 因此,在元素上應用任何 .col-md-* 柵格類適用於與屏幕寬度大於或等於分界點大小的設備 ,並且針對小屏幕設備覆蓋柵格類。因此, 在元素上應用任何 .col-lg-*不存在, 也影響大屏幕設備。
//創建一個響應式行
<div class="container"> <div class="row"> ... </div> </div>
//創建最多 12 列的響應式行
<div class="container"> <div class="row"> <div class="col-md-1 a">1</div> <div class="col-md-1 a">2</div> <div class="col-md-1 a">3</div> <div class="col-md-1 a">4</div> <div class="col-md-1 a">5</div> <div class="col-md-1 a">6</div> <div class="col-md-1 a">7</div> <div class="col-md-1 a">8</div> <div class="col-md-1 a">9</div> <div class="col-md-1 a">10</div> <div class="col-md-1 a">11</div> <div class="col-md-1 a">12</div> </div> </div>
//為了顯示明顯的 CSS
.a { height: 100px; background-color: #eee; border: 1px solid #ccc; }
//總列數都是 12,每列分配多列
<div class="container"> <div class="row"> <div class="col-md-4 a">1-4</div> <div class="col-md-4 a">5-8</div> <div class="col-md-4 a">9-12</div> </div> <div class="row"> <div class="col-md-8 a">1-8</div> <div class="col-md-4 a">9-12</div> </div> </div>
柵格參數表
如上圖所示,柵格系統最外層區分了四種寬度的瀏覽器:超小屏(<768px)、小屏(>=768px)、中屏(>=992px)和大屏(>=1200px)。而內層.container 容器的自適應寬度為:自動、750px、970px 和 1170px。自動的意思為,如果你是手機屏幕,則全面獨占一行顯示。
//四種屏幕分類全部激活
<div class="container"> <div class="row"> <div class="col-lg-3 col-md-4 col-sm-6 col-xs-12 a">4</div> <div class="col-lg-3 col-md-4 col-sm-6 col-xs-12 a">4</div> <div class="col-lg-3 col-md-4 col-sm-6 col-xs-12 a">4</div> <div class="col-lg-3 col-md-4 col-sm-6 col-xs-12 a">4</div> <div class="col-lg-3 col-md-4 col-sm-6 col-xs-12 a">4</div> <div class="col-lg-3 col-md-4 col-sm-6 col-xs-12 a">4</div> <div class="col-lg-3 col-md-4 col-sm-6 col-xs-12 a">4</div> <div class="col-lg-3 col-md-4 col-sm-6 col-xs-12 a">4</div> <div class="col-lg-3 col-md-4 col-sm-6 col-xs-12 a">4</div> <div class="col-lg-3 col-md-4 col-sm-6 col-xs-12 a">4</div> <div class="col-lg-3 col-md-4 col-sm-6 col-xs-12 a">4</div> <div class="col-lg-3 col-md-4 col-sm-6 col-xs-12 a">4</div> </div> </div>
//有時我們可以設置列偏移,讓中間保持空隙
<div class="container"> <div class="row"> <div class="col-md-8 a">8</div> <div class="col-md-3 col-md-offset-1 a">3</div> </div> </div>
//也可以嵌套,嵌滿也是 12 列
<div class="container"> <div class="row"> <div class="col-md-9 a"> <div class="col-md-8 a">1-8</div> <div class="col-md-4 a">9-12</div> </div> <div class="col-md-3 a"> 11-12 </div> </div> </div>
//可以把兩個列交換位置,push 向左移動,pull 向右移動
<div class="container"> <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> </div>