bootstrap-網(wǎng)格系統(tǒng)

柵格系統(tǒng)的實(shí)現(xiàn)原理非常簡(jiǎn)單,僅僅是通過(guò)定義容器大小萎馅,平分12份,再調(diào)整內(nèi)外邊距虹蒋,最后再結(jié)合媒體查詢糜芳,就制作出了強(qiáng)大的響應(yīng)式的柵格系統(tǒng)。Bootstrap默認(rèn)的柵格系統(tǒng)平分為12份魄衅。

柵格系統(tǒng)的主要工作原理

  • 一行數(shù)據(jù)(row)必須包含在.container中峭竣,以便為其賦予合適的對(duì)齊方式和內(nèi)邊距(padding)。

  • 使用行(row)在水平方向創(chuàng)建一組列(column)徐绑。

  • 具體內(nèi)容應(yīng)當(dāng)放置于列(column)內(nèi)邪驮,而且只有列(column)可以作為行(row)的直接子元素。

  • 內(nèi)置一大堆樣式傲茄,可以使用像.row和.col-xs-4(占4列寬度)這樣的樣式來(lái)快速創(chuàng)建柵格布局毅访。Bootstrap源碼中定義的mixin也可以用來(lái)創(chuàng)建語(yǔ)義化的布局。

  • 通過(guò)設(shè)置padding從而創(chuàng)建列(column)之間的間隔盘榨。然后通過(guò)為第一列和最后一列設(shè)置負(fù)值的margin從而抵消掉padding的影響喻粹。

  • 柵格系統(tǒng)中的列是通過(guò)指定1到12的值來(lái)表示其跨越的范圍的。例如草巡,要讓屏幕分為3個(gè)等寬的部分守呜,可以使用3個(gè).col-xs-4來(lái)創(chuàng)建。

舉個(gè)栗子:

    <body>
            <div class="container">
                    <div class="row" style="background-color: green;height: 50px;">
                            <div class="col-xs-3" style="background-color: grey;height: 50px;">
                            </div>
                    </div>
            </div>
            <div class="container-fluid">
            </div>
    </body>

一般的網(wǎng)格布局山憨,查看css源碼1585行

.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;
  }
}

bs .container定好了在不同屏幕下面的寬度查乒,750px->970px->1170px,每個(gè)容器左右內(nèi)邊距15px郁竟;
再看.row的樣式

.row {
  margin-right: -15px;
  margin-left: -15px;
}

.row放在.container中消除了.container15px內(nèi)邊距帶來(lái)的影響

然后再來(lái)看每一列的定義col-xx-xx

.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;
}
.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
  float: left;
}

每一col-列都帶有15px的左右內(nèi)邊距玛迄,左浮動(dòng)排列~
.col-xx-xx使用width設(shè)置百分比寬度
col-xx-offset-xx使用margin-left進(jìn)行向右偏移
col-xx-pull-xx使用right進(jìn)行向左偏移
col-xx-push-xx使用left進(jìn)行向右偏移

.col-xs-12 {
  width: 100%;
}
.col-xs-11 {
  width: 91.66666667%;
}
.col-xs-10 {
  width: 83.33333333%;
}
.col-xs-9 {
  width: 75%;
}
.col-xs-8 {
  width: 66.66666667%;
}
.col-xs-7 {
  width: 58.33333333%;
}
.col-xs-6 {
  width: 50%;
}
.col-xs-5 {
  width: 41.66666667%;
}
.col-xs-4 {
  width: 33.33333333%;
}
.col-xs-3 {
  width: 25%;
}
.col-xs-2 {
  width: 16.66666667%;
}
.col-xs-1 {
  width: 8.33333333%;
}
.col-xs-pull-12 {
  right: 100%;
}
.col-xs-pull-11 {
  right: 91.66666667%;
}
.col-xs-pull-10 {
  right: 83.33333333%;
}
.col-xs-pull-9 {
  right: 75%;
}
.col-xs-pull-8 {
  right: 66.66666667%;
}
.col-xs-pull-7 {
  right: 58.33333333%;
}
.col-xs-pull-6 {
  right: 50%;
}
.col-xs-pull-5 {
  right: 41.66666667%;
}
.col-xs-pull-4 {
  right: 33.33333333%;
}
.col-xs-pull-3 {
  right: 25%;
}
.col-xs-pull-2 {
  right: 16.66666667%;
}
.col-xs-pull-1 {
  right: 8.33333333%;
}
.col-xs-pull-0 {
  right: auto;
}
.col-xs-push-12 {
  left: 100%;
}
.col-xs-push-11 {
  left: 91.66666667%;
}
.col-xs-push-10 {
  left: 83.33333333%;
}
.col-xs-push-9 {
  left: 75%;
}
.col-xs-push-8 {
  left: 66.66666667%;
}
.col-xs-push-7 {
  left: 58.33333333%;
}
.col-xs-push-6 {
  left: 50%;
}
.col-xs-push-5 {
  left: 41.66666667%;
}
.col-xs-push-4 {
  left: 33.33333333%;
}
.col-xs-push-3 {
  left: 25%;
}
.col-xs-push-2 {
  left: 16.66666667%;
}
.col-xs-push-1 {
  left: 8.33333333%;
}
.col-xs-push-0 {
  left: auto;
}
.col-xs-offset-12 {
  margin-left: 100%;
}
.col-xs-offset-11 {
  margin-left: 91.66666667%;
}
.col-xs-offset-10 {
  margin-left: 83.33333333%;
}
.col-xs-offset-9 {
  margin-left: 75%;
}
.col-xs-offset-8 {
  margin-left: 66.66666667%;
}
.col-xs-offset-7 {
  margin-left: 58.33333333%;
}
.col-xs-offset-6 {
  margin-left: 50%;
}
.col-xs-offset-5 {
  margin-left: 41.66666667%;
}
.col-xs-offset-4 {
  margin-left: 33.33333333%;
}
.col-xs-offset-3 {
  margin-left: 25%;
}
.col-xs-offset-2 {
  margin-left: 16.66666667%;
}
.col-xs-offset-1 {
  margin-left: 8.33333333%;
}
.col-xs-offset-0 {
  margin-left: 0;
}

對(duì)重復(fù)代碼的處理
縱觀整個(gè)柵格系統(tǒng)的源碼,從854行到1635行絕大部分代碼都是重復(fù)性的棚亩。比如給4種不同的類型設(shè)置width的時(shí)候蓖议,給pull和push設(shè)置left和right的時(shí)候,以及給offset設(shè)置的margin-left時(shí)候讥蟆,設(shè)置的值都一樣勒虾。只是樣式名稱不一樣。除此之外不一樣的地方就只有container樣式的寬度設(shè)置了瘸彤。那為什么不能這樣設(shè)置呢修然?
所有重復(fù)性的內(nèi)容都放一起(在媒體查詢之外),那么和媒體查詢有關(guān)的就只有這一項(xiàng)內(nèi)容了,也就是如下代碼中所列的width寬度愕宋。
.col-xs-12
.col-sm-12
.col-md-12
.col-lg-12 {
width: 100%;
}
總結(jié):這得節(jié)約多少行代碼~婆翔!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市掏婶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌潭陪,老刑警劉巖雄妥,帶你破解...
    沈念sama閱讀 212,542評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異依溯,居然都是意外死亡老厌,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門黎炉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)枝秤,“玉大人,你說(shuō)我怎么就攤上這事慷嗜〉淼” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 158,021評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵庆械,是天一觀的道長(zhǎng)薇溃。 經(jīng)常有香客問(wèn)我,道長(zhǎng)缭乘,這世上最難降的妖魔是什么沐序? 我笑而不...
    開(kāi)封第一講書人閱讀 56,682評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮堕绩,結(jié)果婚禮上策幼,老公的妹妹穿的比我還像新娘。我一直安慰自己奴紧,他們只是感情好特姐,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著绰寞,像睡著了一般到逊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上滤钱,一...
    開(kāi)封第一講書人閱讀 49,985評(píng)論 1 291
  • 那天觉壶,我揣著相機(jī)與錄音,去河邊找鬼件缸。 笑死铜靶,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播争剿,決...
    沈念sama閱讀 39,107評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼已艰,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了蚕苇?” 一聲冷哼從身側(cè)響起哩掺,我...
    開(kāi)封第一講書人閱讀 37,845評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎涩笤,沒(méi)想到半個(gè)月后嚼吞,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,299評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蹬碧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評(píng)論 2 327
  • 正文 我和宋清朗相戀三年舱禽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恩沽。...
    茶點(diǎn)故事閱讀 38,747評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡誊稚,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出罗心,到底是詐尸還是另有隱情里伯,我是刑警寧澤,帶...
    沈念sama閱讀 34,441評(píng)論 4 333
  • 正文 年R本政府宣布协屡,位于F島的核電站俏脊,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏肤晓。R本人自食惡果不足惜爷贫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望补憾。 院中可真熱鬧漫萄,春花似錦、人聲如沸盈匾。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,828評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)削饵。三九已至岩瘦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間窿撬,已是汗流浹背启昧。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,069評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留劈伴,地道東北人密末。 一個(gè)月前我還...
    沈念sama閱讀 46,545評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親严里。 傳聞我的和親對(duì)象是個(gè)殘疾皇子新啼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容

  • 網(wǎng)絡(luò)系統(tǒng) bootstrap允許將頁(yè)面劃分成共12個(gè)等寬邏輯單元,既允許單獨(dú)地使用這12個(gè)等分邏輯單元刹碾,也可以將其...
    博為峰51Code教研組閱讀 418評(píng)論 0 1
  • 基本用法:網(wǎng)格系統(tǒng)用來(lái)布局燥撞,其實(shí)就是列的組合。Bootstrap框架的網(wǎng)格系統(tǒng)中有四種基本的用法迷帜。由于Bootst...
    子非魚(yú)666閱讀 451評(píng)論 0 2
  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案叨吮? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,737評(píng)論 1 92
  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類選擇器 屬性選擇器 繼承屬性: color,font瞬矩,text-align,li...
    love2013閱讀 2,306評(píng)論 0 11
  • Bootstrap是什么锋玲? 一套易用景用、優(yōu)雅、靈活惭蹂、可擴(kuò)展的前端工具集--BootStrap伞插。GitHub上介紹 的...
    凜0_0閱讀 10,862評(píng)論 3 184