Bootstrap學習筆記之整體架構


之前有粗略地看過一下Bootstrap的內容,不過那只是走馬觀花式地看下是怎么用的,以及里面有什么控件,所以就沒想着記筆記。現在由於要給部門做分享,所以不得不深入地去學習下,不然僅是簡單地說下怎么用,那就無異於“謀殺”別人(浪費別人的時間等於謀財害命——魯迅)。

1、整體架構 


  下圖為Bootstrap的整體架構圖,共分為六大部分:

 

 1.1、12柵格系統

  12柵格系統就是把網頁的總寬度平分為12份,我們可以自由按份組合。柵格系統使用的總寬度可以不固定,Bootstrap是按百分比進行平分。(保留15位小數點精度)

  12柵格系統是整個Bootstrap的核心功能,也是響應式設計核心理念的一個實現形式。

1.2、JQuery

   Bootstrap所有的JavaScript插件都依賴於jQuery1.10+,如果要使用這些插件,那就必須引用jQuery庫。如果你只用CSS組件,那就可以不引用它了。

1.3、響應式設計

    響應式設計是一個理念,而非功能。Bootstrap的所有內容,都是以響應式設計為設計理念來實現的。

  響應式設計的目的:讓頁面應該有能力自動響應用戶的設備環境。響應式網頁設計就是一個網站能夠兼容多個終端,而不是為每個終端做一個特定的版本。

  實踐方式:由多方面決定,包括彈性網格和布局、圖片、CSS媒體查詢(media query)的使用等。

 

2、柵格系統


 

 2.1、實現原理

  通過定義容器大小,平分12份,再調整內外邊距,最后再結合媒體查詢,就制作出了強大的響應式的柵格系統。Bootstrap默認的柵格系統平分為12份,在使用的時候大家也可以根據情況通過重新編譯LESS源碼來修改12這個數值。

2.2、工作原理

  •一行數據(row)必須包含在.container中,以便為其賦予合適的對齊方式和內邊距。
  •使用行(row)在水平方向創建一組列(column)。
  •具體內容應當放置於列(column)內,而且只有列(column)可以作為行(row)的直接子元素。
  •使用像.row和.col-xs-4這樣的樣式來快速創建柵格布局。
  •通過設置列padding從而創建列(column)之間的間隔。然后通過為第一列和最后一列設置負值的margin從而抵消掉padding的影響。
  •柵格系統中的列是通過指定1到12的值來表示其跨越的范圍的。
 
  Container的作用:
  • 提供寬度限制。container隨着頁面寬度變化而變化,由於column的寬度是基於百分比,所以它們的寬度不用去管。
  • 提供左右padding,以至於文本內容不會觸及瀏覽器邊緣。container左右有15px的padding。如下圖:
  
 
  Row:
  • Row是Column的存放容器,Row中最多只能放12個左浮動的Column。
  • Row有個特殊的地方就是左右-15px的margin。這樣正好抵消父容器container中的15px的padding。(剛開始我覺得這樣不是在瞎折騰嗎?但看到后面才發現這正是它的精妙之處)

    Column:
  • column有左右15px的padding,所以位於兩邊的column有15px的padding,可以使其內容不會碰到container的邊界,而同時不同column的內容之間就有了30px的槽,如下圖:


    嵌套:
  • 上面提到它的精妙之處就是為嵌套而設計的。由於container和column都有15px的padding,所以在嵌套時column就相當container了,這樣就可以實現任意的嵌套。

    列偏移(Offset):
  • 為當前元素增加了左邊距(left-margin)。

    列排序(Push and Pull)

設置元素的定位,而非邊距(margin)。push和pull必須同時使用,否則會重疊。

3、結束語
  主要參考:1、《深入理解boostarp》

       2、http://www.helloerik.com/the-subtle-magic-behind-why-the-bootstrap-3-grid-works 
        


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM