Bootstrap 3 是移動設備優先的,在這個意義上,Bootstrap 代碼從小屏幕設備(好比移動設備、平板電腦)開始,而後擴展到大屏幕設備(好比筆記本電腦、臺式電腦)上的組件和網格。佈局
響應式網格系統隨着屏幕或視口(viewport)尺寸的增長,系統會自動分爲最多12列。以下圖:測試
網格系統經過一系列包含內容的行和列來建立頁面佈局。下面列出了 Bootstrap 網格系統是如何工做的:設計
媒體查詢是很是別緻的"有條件的 CSS 規則"。它只適用於一些基於某些規定條件的 CSS。若是知足那些條件,則應用相應的樣式。blog
Bootstrap 中的媒體查詢容許您基於視口大小移動、顯示並隱藏內容。下面的媒體查詢在 LESS 文件中使用,用來建立 Bootstrap 網格系統中的關鍵的分界點閾值。排序
/* 超小設備(手機,小於 768px) */ /* Bootstrap 中默認狀況下沒有媒體查詢 */ /* 小型設備(平板電腦,768px 起) */ @media (min-width: @screen-sm-min) { ... } /* 中型設備(臺式電腦,992px 起) */ @media (min-width: @screen-md-min) { ... } /* 大型設備(大臺式電腦,1200px 起) */ @media (min-width: @screen-lg-min) { ... }
咱們有時候也會在媒體查詢代碼中包含 max-width,從而將 CSS 的影響限制在更小範圍的屏幕大小以內。頁面佈局
@media (max-width: @screen-xs-max) { ... } @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { ... } @media (min-width: @screen-md-min) and (max-width: @screen-md-max) { ... } @media (min-width: @screen-lg-min) { ... }
媒體查詢有兩個部分,先是一個設備規範,而後是一個大小規則。在上面的案例中,設置了下列的規則:table
讓咱們來看下面這行代碼:class
@media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { ... }
對於全部帶有 min-width: @screen-sm-min 的設備,若是屏幕的寬度小於 @screen-sm-max,則會進行一些處理。容器
下表總結了 Bootstrap 網格系統如何跨多個設備工做:基礎
超小設備手機(<768px) | 小型設備平板電腦(≥768px) | 中型設備臺式電腦(≥992px) | 大型設備臺式電腦(≥1200px) | |
---|---|---|---|---|
網格行爲 | 一直是水平的 | 以摺疊開始,斷點以上是水平的 | 以摺疊開始,斷點以上是水平的 | 以摺疊開始,斷點以上是水平的 |
最大容器寬度 | None (auto) | 750px | 970px | 1170px |
Class 前綴 | .col-xs- | .col-sm- | .col-md- | .col-lg- |
列數量和 | 12 | 12 | 12 | 12 |
最大列寬 | Auto | 60px | 78px | 95px |
間隙寬度 | 30px (一個列的每邊分別 15px) |
30px (一個列的每邊分別 15px) |
30px (一個列的每邊分別 15px) |
30px (一個列的每邊分別 15px) |
可嵌套 | Yes | Yes | Yes | Yes |
偏移量 | Yes | Yes | Yes | Yes |
列排序 | Yes | Yes | Yes | Yes |
下面是 Bootstrap 網格的基本結構:
<div class="container"> <div class="row"> <div class="col-*-*"></div> <div class="col-*-*"></div> </div> <div class="row">...</div> </div> <div class="container">....
下面是個具體代碼實例:
<div class="container"> <h1>Hello, world!</h1> <div class="row"> <!--超小設備手機(<768px) --> <div class="col-xs-1" style="background: #f00">1</div> <div class="col-xs-1" style="background: #b2b0b0">2</div> <div class="col-xs-1" style="background: #ff6a00">3</div> <div class="col-xs-1" style="background: #ffd800">4</div> <div class="col-xs-1" style="background: #4cff00">5</div> <div class="col-xs-1" style="background: #0ff">6</div> <div class="col-xs-1" style="background: #0094ff">7</div> <div class="col-xs-1" style="background: #b200ff">8</div> <div class="col-xs-1" style="background: #ff00dc">9</div> <div class="col-xs-1" style="background: #ff006e">10</div> <div class="col-xs-1" style="background: #ac5050">11</div> <div class="col-xs-1" style="background: #54bd4f">12</div> </div> <div class="row"> <!--小型設備平板電腦(≥768px) --> <div class="col-sm-4" style="background: #b2b0b0">1</div> <div class="col-sm-4" style="background: #ffd800">1</div> <div class="col-sm-4" style="background: #ac5050">1</div> </div> <div class="row"> <!--中型設備臺式電腦(≥992px) --> <div class="col-md-4" style="background: #ac5050">1</div> <div class="col-md-8" style="background: #54bd4f">1</div> </div> <div class="row"> <!--大型設備臺式電腦(≥1200px) --> <div class="col-lg-8" style="background: #ac5050">1</div> <div class="col-lg-4" style="background: #54bd4f">1</div> </div> </div>
偏移是一個用於更專業的佈局的有用功能。它們可用來給列騰出更多的空間。例如,.col-xs=* 類不支持偏移,可是它們能夠簡單地經過使用一個空的單元格來實現該效果。
爲了在大屏幕顯示器上使用偏移,請使用 .col-md-offset-* 類。這些類會把一個列的左外邊距(margin)增長 * 列,其中 * 範圍是從 1到 11。
在下面的實例中,咱們有 <div class="col-md-6">..</div>,咱們將使用 .col-md-offset-3 class 來居中這個 div。
<div class="container"> <div class="row"> <div class="col-xs-6 col-md-offset-3" style="background-color: #dedef8;"> <p> 測試偏移列---此處往右偏移了3列 </p> </div> </div> <div class="row"> <div class="col-xs-1" style="background: #f00">1</div> <div class="col-xs-1" style="background: #b2b0b0">2</div> <div class="col-xs-1" style="background: #ff6a00">3</div> <div class="col-xs-1" style="background: #ffd800">4</div> <div class="col-xs-1" style="background: #4cff00">5</div> <div class="col-xs-1" style="background: #0ff">6</div> <div class="col-xs-1" style="background: #0094ff">7</div> <div class="col-xs-1" style="background: #b200ff">8</div> <div class="col-xs-1" style="background: #ff00dc">9</div> <div class="col-xs-1" style="background: #ff006e">10</div> <div class="col-xs-1" style="background: #ac5050">11</div> <div class="col-xs-1" style="background: #54bd4f">12</div> </div> </div>
顯示效果:
爲了在內容中嵌套默認的網格,請添加一個新的 .row,並在一個已有的 .col-md-* 列內添加一組 .col-md-* 列。被嵌套的行應包含一組列,這組列個數不能超過12(其實,沒有要求你必須佔滿12列)。
在下面的實例中,佈局有兩個列,第二列被分爲兩行四個盒子。
<div class="container"> <div class="row"> <div class="col-xs-4" style="background: #b2b0b0">第一列</div> <div class="col-xs-8" style="background: #dedef8">第二列--裏面嵌套了四個DIV <div class="row"> <div class="col-xs-6" style="background: #0094ff">我是內容一<br /><br /><br /></div> <div class="col-xs-6" style="background: #b200ff">我是內容二</div> </div> <div class="row"> <div class="col-xs-6" style="background: #ff00dc">我是內容三<br /><br /><br /></div> <div class="col-xs-6" style="background: #ff006e">我是內容四</div> </div> </div> </div> </div>
顯示效果:
Bootstrap 網格系統另外一個完美的特性,就是您能夠很容易地以一種順序編寫列,而後以另外一種順序顯示列。
您能夠很輕易地改變帶有 .col-md-push-* 和 .col-md-pull-* 類的內置網格列的順序,其中 * 範圍是從 1 到 11。
在下面的實例中,咱們有兩列布局,左列很窄,做爲側邊欄。咱們將使用 .col-md-push-* 和 .col-md-pull-* 類來互換這兩列的順序。
<div class="container"> <div class="row"> <div class="col-xs-4 col-md-push-8" style="background: #ff00dc">左邊</div> <div class="col-xs-8 col-md-pull-4" style="background: #ff006e">右邊</div> </div> </div>
顯示效果: