Bootstrap 柵格系統(tǒng)(布局)

2018-09-10 16:06 更新

Bootstrap內(nèi)置了一套響應(yīng)式、移動設(shè)備優(yōu)先的流式柵格系統(tǒng),隨著屏幕設(shè)備或視口(viewport)尺寸的增加,系統(tǒng)會自動分為最多12列。

我在這里是把Bootstrap中的柵格系統(tǒng)叫做布局。它就是通過一系列的行(row)與列(column)的組合創(chuàng)建頁面布局,然后你的內(nèi)容就可以放入到你創(chuàng)建好的布局當(dāng)中。下面就簡單介紹一下Bootstrap柵格系統(tǒng)的工作原理:

網(wǎng)格系統(tǒng)的實(shí)現(xiàn)原理非常簡單,僅僅是通過定義容器大小,平分12份(也有平分成24份或32份,但12份是最常見的),再調(diào)整內(nèi)外邊距,最后結(jié)合媒體查詢,就制作出了強(qiáng)大的響應(yīng)式網(wǎng)格系統(tǒng)。Bootstrap框架中的網(wǎng)格系統(tǒng)就是將容器平分成12份。

在使用的時候大家可以根據(jù)實(shí)際情況重新編譯LESS(或Sass)源碼來修改12這個數(shù)值(也就是換成24或32,當(dāng)然你也可以分成更多,但不建議這樣使用)。


使用規(guī)則
Bootstrap內(nèi)置了一套響應(yīng)式、移動設(shè)備。

1、數(shù)據(jù)行(.row)必須包含在容器(.container)中,以便為其賦予合適的對齊方式和內(nèi)距(padding)。如:

<div class="container">
 <div class="row"></div>
</div>
2、在行(.row)中可以添加列(.column),但列數(shù)之和不能超過平分的總列數(shù),比如12。如:
<div class="container">
<div class="row">
 <div class="col-md-4"></div>
 <div class="col-md-8"></div>

3、具體內(nèi)容應(yīng)當(dāng)放置在列容器(column)之內(nèi),而且只有列(column)才可以作為行容器(.row)的直接子元素

4、通過設(shè)置內(nèi)距(padding)從而創(chuàng)建列與列之間的間距。然后通過為第一列和最后一列設(shè)置負(fù)值的外距(margin)來抵消內(nèi)距(padding)的影響

為了更好的理解Bootstrap框架的網(wǎng)格系統(tǒng)工作原理,我們來看一張草圖:

Bootstrap 柵格系統(tǒng)

簡單對圖解釋一下:

1、最外邊框,帶有一大片白色區(qū)域,就是相當(dāng)于瀏覽器的可視區(qū)域。在Bootstrap框架的網(wǎng)格系統(tǒng)中帶有響應(yīng)式效果,其帶有四種類型的瀏覽器(超小屏,小屏,中屏和大屏),其斷點(diǎn)(像素的分界點(diǎn))是768px、992px和1220px。

2、第二個邊框(1)相當(dāng)于容器(.container)。針對不同的瀏覽器分辨率,其寬度也不一樣:自動、750px、970px和1170px。在bootstrap.css的第736行~第756行進(jìn)行設(shè)置:

.container {
 padding-right: 15px;
 padding-left: 15px;
 margin-right: auto;
 margin-left: auto;
 @media (min-width: 768px) {
 .container {
 width: 750px;
 }
 @media (min-width: 992px) {
 .container {
 width: 970px;
 }
 @media (min-width: 1200px) {
 .container {
 width: 1170px;
 }
3、2號橫條闡述的是,將容器的行(.row)平分了12等份,也就是列。每個列都有一個“padding-left:15px”(圖中粉紅色部分)和一個“padding-right:15px”(圖中紫色部分)。這樣也導(dǎo)致了第一個列的padding-left和最后一列的padding-right占據(jù)了總寬度的30px,從而致使頁面不美觀,當(dāng)然,如果你需要留有一定的間距,這個做法是不錯的。如bootstrap.css中第767行~第772行所示:
.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
 position: relative;
 min-height: 1px;
 padding-right: 15px;
 padding-left: 15px;
4、3號橫條就是行容器(.row),其定義了“margin-left”和”margin-right”值為”-15px”,用來抵消第一個列的左內(nèi)距和最后一列的右內(nèi)距。在bootstrap.css的第763行~第767行可以看到:
.row {
 margin-right: -15px;
 margin-left: -15px;

5、將行與列給合在一起就能看到橫條4的效果。也就是我們期望看到的效果,第一列和最后一列與容器(.container)之間沒有間距。

橫條5只是想向大家展示,你可以根據(jù)需要,任意組合列與列,只是他們的組合數(shù)之和不要超過總列數(shù)。



以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號