Bootstrap,來自 Twitter,是目前最受歡迎的前端框架。 Bootstrap 是基於 HTML、CSS、JAVASCRIPT 的,它簡潔靈活,使得 Web 開發更快速。
學習重點:
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>
以上所述是針對BootStrap 柵格系統 的相關資料,希望對大家有幫助!