作為一名合格的前端工程師,你肯定聽說過Bootstarp框架。確實可以說Bootstrap框架是最流行的前端框架之一。可是也有人說Bootstrap是給后端和前端小白用的,我認為只要學習它能給我們前端技能帶來提升,那么我們就有必要研究一下它。Bootstrap框架雖然也提供了javascript插件,但總感覺不夠用。Bootrtrap更多的則是被用作css框架。之前我也用過幾次Bootstrap,感覺確實很快,很方便,用的次數多了就越想弄清楚它到底是怎么回事?它好在哪里?
在Bootstrap官網點擊下載我們可以看到有用於生產環境中的Bootstrap和Bootstrap源碼以及Sass,我們知道Bootstrap 的源碼是基於最流行的 CSS 預處理腳本 - Less 和 Sass 開發的。今天我們就來學習一下以Less開發的Bootstrap。如果不熟悉Less語法的朋友可以先在Less官網學習下,在下載的bootstrap-3.3.0\less文件夾中打開bootstrap.less,我們可以看到源碼的整體架構
// Core variables and mixins
//定義變量,方便后面調用
@import "variables.less";
//定義混合 這類似定義函數或者宏,在mixins文件夾中可看到所定義的函數
@import "mixins.less";
// Reset and dependencies
//標准化css,這是一個專門將不同瀏覽器的默認css特性設置為統一效果的css庫,編譯后對應源碼為8~190行
@import "normalize.less";
//打印樣式,編譯后對應源碼為192~266行
@import "print.less";
//圖標樣式,編譯后對應源碼為267~885行
@import "glyphicons.less";
// Core CSS 核心CSS
//腳手架,相當於全局樣式,編譯后對應源碼為886~989行
@import "scaffolding.less";
//排版樣式,編譯后對應源碼為990~1335行
@import "type.less";
//代碼樣式,編譯后對應源碼為1336~1389行
@import "code.less";
//柵格系統,這是Bootstrap支持響應式的重點,編譯后對應源碼為1390~2056行
@import "grid.less";
//表格樣式,編譯后對應源碼為2057~2296行
@import "tables.less";
//表單樣式,編譯后對應源碼為2297~2781行
@import "forms.less";
//按鈕樣式,編譯后對應源碼為2782~3171行
@import "buttons.less";
// Components 組件
//組件中折疊和隱藏動畫,編譯后對應源碼為2782~3171行
@import "component-animations.less";
//下拉菜單及下三角符號,編譯后對應源碼為3209~3348行
@import "dropdowns.less";
//按鈕組,編譯后對應源碼為3349~3520行
@import "button-groups.less";
//輸入框組,編譯后對應源碼為3521~3674行
@import "input-groups.less";
//導航,編譯后對應源碼為3675~3868行
@import "navs.less";
//導航條,編譯后對應源碼為3869~4393行
@import "navbar.less";
//面包屑,編譯后對應源碼為4394~4411行
@import "breadcrumbs.less";
//默認分頁,編譯后對應源碼為4412~4504行
@import "pagination.less";
//翻頁,編譯后對應源碼為4505~4542行
@import "pager.less";
//標簽,編譯后對應源碼為4543~4609行
@import "labels.less";
//徽章,編譯后對應源碼為4610~4648行
@import "badges.less";
//巨幕,編譯后對應源碼為4649~4686行
@import "jumbotron.less";
//縮略圖,編譯后對應源碼為4687~4712行
@import "thumbnails.less";
//警告框,編譯后對應源碼為4713~4787行
@import "alerts.less";
//進度條,編譯后對應源碼為4788~4881行
@import "progress-bars.less";
//媒體對象,編譯后對應源碼為4882~4915行
@import "media.less";
//列表組,編譯后對應源碼為4916~5091行
@import "list-group.less";
//面板,編譯后對應源碼為5092~5426行
@import "panels.less";
//具有響應式特性的嵌入內容,編譯后對應源碼為5427~5452行
@import "responsive-embed.less";
//well效果,編譯后對應源碼為5453~5474行
@import "wells.less";
//關閉按鈕圖標,編譯后對應源碼為5475~5499行
@import "close.less";
// Components w/ JavaScript
//模態框,編譯后對應源碼為5500~5622行
@import "modals.less";
//工具提示,編譯后對應源碼為5623~5720行
@import "tooltip.less";
//彈出框,編譯后對應源碼為5721~5841行
@import "popovers.less";
//輪播,編譯后對應源碼為5842~6063行
@import "carousel.less";
// Utility classes
//實用工具類,編譯后對應源碼為6064~6147行
@import "utilities.less";
//響應式工具類,編譯后對應源碼為6148~6357行
@import "responsive-utilities.less";
這些Less文件進過編譯后形成了完整的Bootstrap框架。在Bootstrap官網最后我們可以定制自己的Bootstrap,可根據項目的需要自行選擇不同的Less文件。
在《深入理解Bootstrap》一書中以圖表的形式概括了Bootstrap整體架構,圖片如下:
在接下來的文章中,將對Bootstrap框架中一些常用的樣式及組件進行分析,經過自己梳理一遍對Bootstrap更加了解了。