Bootstrap布局方式詳解
Bootstrap 3 是移動(dòng)設(shè)備優(yōu)先的,在這個(gè)意義上,Bootstrap 代碼從小屏幕設(shè)備(比如移動(dòng)設(shè)備、平板電腦)開(kāi)始,然后擴(kuò)展到大屏幕設(shè)備(比如筆記本電腦、臺(tái)式電腦)上的組件和網(wǎng)格。
一、移動(dòng)設(shè)備優(yōu)先策略
內(nèi)容: 決定什么是最重要的。
2、布局
優(yōu)先設(shè)計(jì)更小的寬度。
基礎(chǔ)的 CSS 是移動(dòng)設(shè)備優(yōu)先,媒體查詢是針對(duì)于平板電腦、臺(tái)式電腦。
3、漸進(jìn)增強(qiáng)
隨著屏幕大小的增加而添加元素。
響應(yīng)式網(wǎng)格系統(tǒng)隨著屏幕或視口(viewport)尺寸的增加,系統(tǒng)會(huì)自動(dòng)分為最多12列。如下圖:
二、Bootstrap 網(wǎng)格系統(tǒng)(Grid System)的工作原理
網(wǎng)格系統(tǒng)通過(guò)一系列包含內(nèi)容的行和列來(lái)創(chuàng)建頁(yè)面布局。下面列出了 Bootstrap 網(wǎng)格系統(tǒng)是如何工作的:
1、行必須放置在 .container class 內(nèi),以便獲得適當(dāng)?shù)膶?duì)齊(alignment)和內(nèi)邊距(padding)。
2、使用行來(lái)創(chuàng)建列的水平組。
3、內(nèi)容應(yīng)該放置在列內(nèi),且唯有列可以是行的直接子元素。
4、預(yù)定義的網(wǎng)格類,比如 .row 和 .col-xs-4,可用于快速創(chuàng)建網(wǎng)格布局。LESS 混合類可用于更多語(yǔ)義布局。
5、列通過(guò)內(nèi)邊距(padding)來(lái)創(chuàng)建列內(nèi)容之間的間隙。該內(nèi)邊距是通過(guò) .rows 上的外邊距(margin)取負(fù),表示第6、一列和最后一列的行偏移。
7、網(wǎng)格系統(tǒng)是通過(guò)指定您想要橫跨的十二個(gè)可用的列來(lái)創(chuàng)建的。例如,要?jiǎng)?chuàng)建三個(gè)相等的列,則使用三個(gè) .col-xs-4。
三、媒體查詢
媒體查詢是非常別致的"有條件的 CSS 規(guī)則"。它只適用于一些基于某些規(guī)定條件的 CSS。如果滿足那些條件,則應(yīng)用相應(yīng)的樣式。
Bootstrap 中的媒體查詢?cè)试S您基于視口大小移動(dòng)、顯示并隱藏內(nèi)容。下面的媒體查詢?cè)?LESS 文件中使用,用來(lái)創(chuàng)建 Bootstrap 網(wǎng)格系統(tǒng)中的關(guān)鍵的分界點(diǎn)閾值。
/* 超小設(shè)備(手機(jī),小于 768px) */ /* Bootstrap 中默認(rèn)情況下沒(méi)有媒體查詢 */ /* 小型設(shè)備(平板電腦,768px 起) */ @media (min-width: @screen-sm-min) { ... } /* 中型設(shè)備(臺(tái)式電腦,992px 起) */ @media (min-width: @screen-md-min) { ... } /* 大型設(shè)備(大臺(tái)式電腦,1200px 起) */ @media (min-width: @screen-lg-min) { ... }
我們有時(shí)候也會(huì)在媒體查詢代碼中包含 max-width,從而將 CSS 的影響限制在更小范圍的屏幕大小之內(nèi)。
@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) { ... }
媒體查詢有兩個(gè)部分,先是一個(gè)設(shè)備規(guī)范,然后是一個(gè)大小規(guī)則。在上面的案例中,設(shè)置了下列的規(guī)則:
讓我們來(lái)看下面這行代碼:
@media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { ... }
對(duì)于所有帶有 min-width: @screen-sm-min 的設(shè)備,如果屏幕的寬度小于 @screen-sm-max,則會(huì)進(jìn)行一些處理。
四、網(wǎng)格選項(xiàng)
下表總結(jié)了Bootstrap 網(wǎng)格系統(tǒng)如何跨多個(gè)設(shè)備工作:
五、基本的網(wǎng)格結(jié)構(gòu)
下面是 Bootstrap 網(wǎng)格的基本結(jié)構(gòu):
<div class="container"> <div class="row"> <div class="col-*-*"></div> <div class="col-*-*"></div> </div> <div class="row">...</div> </div> <div class="container">....
下面是個(gè)具體代碼實(shí)例:
<div class="container"> <h1>Hello, world!</h1> <div class="row"> <!--超小設(shè)備手機(jī)(<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"> <!--小型設(shè)備平板電腦(≥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"> <!--中型設(shè)備臺(tái)式電腦(≥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"> <!--大型設(shè)備臺(tái)式電腦(≥1200px) --> <div class="col-lg-8" style="background: #ac5050">1</div> <div class="col-lg-4" style="background: #54bd4f">1</div> </div> </div>
六、偏移列
偏移是一個(gè)用于更專業(yè)的布局的有用功能。它們可用來(lái)給列騰出更多的空間。例如,.col-xs=* 類不支持偏移,但是它們可以簡(jiǎn)單地通過(guò)使用一個(gè)空的單元格來(lái)實(shí)現(xiàn)該效果。
為了在大屏幕顯示器上使用偏移,請(qǐng)使用 .col-md-offset-* 類。這些類會(huì)把一個(gè)列的左外邊距(margin)增加 * 列,其中 * 范圍是從 1到 11。
在下面的實(shí)例中,我們有 <div class="col-md-6">..</div>,我們將使用 .col-md-offset-3 class 來(lái)居中這個(gè) div。
<div class="container"> <div class="row"> <div class="col-xs-6 col-md-offset-3" style="background-color: #dedef8;"> <p> 測(cè)試偏移列---此處往右偏移了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>
顯示效果:
七、嵌套列
為了在內(nèi)容中嵌套默認(rèn)的網(wǎng)格,請(qǐng)?zhí)砑右粋€(gè)新的 .row,并在一個(gè)已有的 .col-md-* 列內(nèi)添加一組 .col-md-* 列。被嵌套的行應(yīng)包含一組列,這組列個(gè)數(shù)不能超過(guò)12(其實(shí),沒(méi)有要求你必須占滿12列)。
在下面的實(shí)例中,布局有兩個(gè)列,第二列被分為兩行四個(gè)盒子。
<div class="container"> <div class="row"> <div class="col-xs-4" style="background: #b2b0b0">第一列</div> <div class="col-xs-8" style="background: #dedef8">第二列--里面嵌套了四個(gè)DIV <div class="row"> <div class="col-xs-6" style="background: #0094ff">我是內(nèi)容一<br /><br /><br /></div> <div class="col-xs-6" style="background: #b200ff">我是內(nèi)容二</div> </div> <div class="row"> <div class="col-xs-6" style="background: #ff00dc">我是內(nèi)容三<br /><br /><br /></div> <div class="col-xs-6" style="background: #ff006e">我是內(nèi)容四</div> </div> </div> </div> </div>
顯示效果:
八、列排序
Bootstrap 網(wǎng)格系統(tǒng)另一個(gè)完美的特性,就是您可以很容易地以一種順序編寫(xiě)列,然后以另一種順序顯示列。
您可以很輕易地改變帶有 .col-md-push-* 和 .col-md-pull-* 類的內(nèi)置網(wǎng)格列的順序,其中 * 范圍是從 1 到 11。
在下面的實(shí)例中,我們有兩列布局,左列很窄,作為側(cè)邊欄。我們將使用 .col-md-push-* 和 .col-md-pull-* 類來(lái)互換這兩列的順序。
<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>
顯示效果:
如果大家還想深入學(xué)習(xí),可以點(diǎn)擊這里進(jìn)行學(xué)習(xí),再為大家附3個(gè)精彩的專題:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- BootStrap框架個(gè)人總結(jié)(bootstrap框架、導(dǎo)航條、下拉菜單、輪播廣告carousel、柵格系統(tǒng)布局、標(biāo)簽頁(yè)tabs、模態(tài)框、菜單定位)
- bootstrap學(xué)習(xí)使用(導(dǎo)航條、下拉菜單、輪播、柵格布局等)
- 精彩的Bootstrap案例分享 重點(diǎn)在注釋!(選項(xiàng)卡、柵格布局)
- Bootstrap布局之柵格系統(tǒng)詳解
- Bootstrap每天必學(xué)之柵格系統(tǒng)(布局)
- 談一談bootstrap響應(yīng)式布局
- JS組件Bootstrap Table布局詳解
- Bootstrap三種表單布局的使用方法
- Bootstrap 布局組件(全)
- 全面解析Bootstrap布局組件應(yīng)用
- 全面解析bootstrap格子布局
- 詳解BootStrap中Affix控件的使用及保持布局的美觀的方法
- Bootstrap實(shí)現(xiàn)的經(jīng)典柵格布局效果實(shí)例【附demo源碼】
相關(guān)文章
分享十八個(gè)殺手級(jí)JavaScript單行代碼
這篇文章主要給大家分享了十八個(gè)殺手級(jí)JavaScript單行代碼,這些單行代碼可以幫助你提高工作效率并可以幫助調(diào)試代碼,對(duì)大家學(xué)習(xí)或者使用JavaScript具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2021-10-10vscode工具函數(shù)idGenerator使用深度解析
這篇文章主要為大家介紹了vscode工具函數(shù)idGenerator使用深度解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03js 數(shù)組 find,some,filter,reduce區(qū)別詳解
區(qū)分清楚Array中filter、find、some、reduce這幾個(gè)方法的區(qū)別,根據(jù)它們的使用場(chǎng)景更好的應(yīng)用在日常編碼中。具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06JavaScript檢測(cè)鼠標(biāo)移動(dòng)方向的方法
這篇文章主要介紹了JavaScript檢測(cè)鼠標(biāo)移動(dòng)方向的方法,涉及javascript鼠標(biāo)操作的相關(guān)技巧,需要的朋友可以參考下2015-05-05小程序如何實(shí)現(xiàn)中間帶加號(hào)的tabbar
自定義tabBar可以讓開(kāi)發(fā)者更加靈活地設(shè)置tabBar樣式,以滿足更多個(gè)性化的場(chǎng)景,下面這篇文章主要給大家介紹了關(guān)于小程序如何實(shí)現(xiàn)中間帶加號(hào)tabbar的相關(guān)資料,需要的朋友可以參考下2022-04-04