?Bootstrap簡(jiǎn)介:
Bootstrap來(lái)自 Twitter,是目前很受歡迎的前端框架。Bootstrap 是基于 HTML、CSS、JavaScript 的,它簡(jiǎn)潔靈活,使得 Web 開(kāi)發(fā)更加快捷。它由Twitter的設(shè)計(jì)師Mark Otto和Jacob Thornton合作開(kāi)發(fā),是一個(gè)CSS/HTML框架。Bootstrap提供了優(yōu)雅的HTML和CSS規(guī)范,它即是由動(dòng)態(tài)CSS語(yǔ)言Less寫(xiě)成。Bootstrap一經(jīng)推出后頗受歡迎,一直是GitHub上的熱門(mén)開(kāi)源項(xiàng)目,包括NASA的MSNBC(微軟全國(guó)廣播公司)的Breaking News都使用了該項(xiàng)目。國(guó)內(nèi)一些移動(dòng)開(kāi)發(fā)者較為熟悉的框架,如WeX5前端開(kāi)源框架等,也是基于Bootstrap源碼進(jìn)行性能優(yōu)化而來(lái)。
? ? ?Bootstray架構(gòu)
基本結(jié)構(gòu):Bootstrap 提供了一個(gè)帶有網(wǎng)格系統(tǒng)、鏈接樣式、背景的基本結(jié)構(gòu)。這將在Bootstrap 基本結(jié)構(gòu)部分詳細(xì)講解。
CSS:Bootstrap 自帶以下特性:全局的 CSS設(shè)置、定義基本的 HTML 元素樣式、可擴(kuò)展的 class,以及一個(gè)先進(jìn)的網(wǎng)格系統(tǒng)。這將在Bootstrap CSS部分詳細(xì)講解。
組件:Bootstrap 包含了十幾個(gè)可重用的組件,用于創(chuàng)建圖像、下拉菜單、導(dǎo)航、警告框、彈出框等等。這將在布局組件部分詳細(xì)講解。
JavaScript 插件:Bootstrap包含了十幾個(gè)自定義的jQuery 插件。您可以直接包含所有的插件,也可以逐個(gè)包含這些插件。這將在Bootstrap插件部分詳細(xì)講解。
定制:您可以定制Bootstrap的組件、LESS 變量和jQuery 插件來(lái)得到您自己的版本。
Bootstrap整體架構(gòu)圖
Bootstrap的CCS模塊化表現(xiàn)
Bootstray預(yù)先定義了很多CSS類(lèi),使用的時(shí)候直接給class賦予對(duì)應(yīng)的類(lèi)名即可,如text-left,text-align,.table等。最有代表性的就是Bootstrayn類(lèi),Bootstray定義了一個(gè).Bootstray的基礎(chǔ)類(lèi),如果還想要其他樣式可以在這個(gè)基礎(chǔ)類(lèi)上進(jìn)行擴(kuò)展,實(shí)現(xiàn)不同的視覺(jué)效果。
.btn類(lèi)之所以典型在于他的樣式定義,CSS大牛和菜鳥(niǎo)的區(qū)別表現(xiàn)在三個(gè)方面,文件大小,后期維護(hù)以及hack,大牛的CSS文件都比較?。ň唧w多少為小要看項(xiàng)目的大小);后期維護(hù)容易,能快速定位,修改一個(gè)樣式需要?jiǎng)拥牡胤奖容^少;hack使用也少。相反菜牛則會(huì)出一個(gè)龐大的文件,后期維護(hù)一團(tuán)亂麻,改一個(gè)樣式需要改很多地方,hack,內(nèi)聯(lián),important滿天飛。
CSS很多值都是有相互依賴關(guān)系的,比如em,我們都知道em是相對(duì)單位,瀏覽器渲染的時(shí)候是必須明確到具體值的,因此必須進(jìn)行計(jì)算。正因?yàn)檫@些相對(duì)單位我們才可以實(shí)現(xiàn)模塊化,.Bootstrayn類(lèi)就是利用相對(duì)單位和字體大小之間的關(guān)系實(shí)現(xiàn)的,將按鈕的line-height,padding,border-radius設(shè)置為相對(duì)單位,字體大小設(shè)置為絕對(duì)單位,需要大按鈕的時(shí)候增加字體,需要小按鈕的時(shí)候減小字體,案例代碼如下:
.btn{ display: inline-block; padding: 6px 12px; margin-bottom: 0; font-size: 14px; font-weight: 400; line-height: 1.42857143; text-align: center; white-space: nowrap; vertical-align: middle;}
這里的line-height會(huì)根據(jù)font-size計(jì)算出相應(yīng)的值,修改font-size按鈕就會(huì)相應(yīng)的變大變小,一個(gè)小小的改動(dòng)就實(shí)現(xiàn)了視覺(jué)上的變化是不是很方便
Bootstray的CSS系統(tǒng)令人稱(chēng)道的地方還有很多,想CSS更進(jìn)一步的話可以研究下他的思路,您也可以單獨(dú)提取出來(lái)放到自己樣式庫(kù)中,以后做項(xiàng)目的時(shí)候可以快速使用。
?
Bootstray的JavaScript插件(交互)
Bootstray的JavaScript插件非常豐富,既可以用現(xiàn)成的也可以自己擴(kuò)充,Bootstray提供了一個(gè)集成板的Bootstray.js您可以直接拿過(guò)來(lái)使用也可以單個(gè)使用引入*.js即可。
JS插件優(yōu)秀的地方在于,哪怕是不懂JS的開(kāi)發(fā)人員也可以使用,只要按照官方文檔提供的格式寫(xiě)即可,比如模態(tài)框,您只要按要求設(shè)置好class,data-toggle,data-target即可,一句JS都不用寫(xiě),是不是很方便。
Bootstray的插件開(kāi)發(fā)模式基本都是相似的,先定義一個(gè)類(lèi),實(shí)現(xiàn)主體功能,然后是個(gè)Plugin函數(shù),再把這個(gè)函數(shù)擴(kuò)展到JQuery原型上,最后通過(guò)委托的方式給特定元素綁定事件。
不足:
對(duì)IE兼容也存在不小的問(wèn)題,Bootstray將所有的元素盒模型都設(shè)置成了border-box,這是IE混雜模式下的盒模型,光這點(diǎn)就導(dǎo)致了不能兼容IE。此外還用到了大量的H5標(biāo)簽以及CSS3語(yǔ)法,這些語(yǔ)法標(biāo)簽兼容性方面同樣存在不小的問(wèn)題,當(dāng)然網(wǎng)上存在很多兼容IE的辦法,但需要引入其他文件,有些還不小,勢(shì)必導(dǎo)致加載速度變慢,影響用戶體驗(yàn)。
Bootstray對(duì)IE6,7的兼容性肯定不好,對(duì)IE8的支持也需要一些額外的文件。
IE8的媒體查詢需要response.js的配合才能實(shí)現(xiàn)
Bootstray 不支持 IE 古老的兼容模式。為了讓 IE 瀏覽器運(yùn)行最新的渲染模式下,建議將此 《meta》 標(biāo)簽加入到你的頁(yè)面中:
《meta http-equiv=“X-UA-Compatible” content=“IE=edge”》
按 F12 鍵打開(kāi) IE 的調(diào)試工具,就可以看到 IE 當(dāng)前的渲染模式是什么。
Bootstrap框架分三類(lèi):
第一:預(yù)處理腳本
Bootstrap的源碼是基于最流行的CSS預(yù)處理腳本-Less和Sass開(kāi)發(fā)的。你可以采用預(yù)編譯的CSS文件快速開(kāi)發(fā),也可以從源碼定制自己需要的樣式。例如。如果你頁(yè)面上有很多同樣的效果。只需要寫(xiě)一個(gè)效果類(lèi)。然后讓用到的地方去繼承他。就不需要再寫(xiě)了。
第二:一個(gè)框架,多種設(shè)備
你的網(wǎng)站和應(yīng)用能在Bootstrap的幫助下通過(guò)同一個(gè)代碼快速,有效設(shè)配手機(jī),平板、PC設(shè)備,這都是CSS媒體查詢的功勞。
第三:特效齊全
Bootstrap提供了全面、美觀的文檔、可以找到關(guān)于HTML元素,HTML和CSS組件、jQuery插件方面的所有詳細(xì)文檔。 Bootstrap組件: Bootstrap中包含了豐富的Web組件,根據(jù)這些組件,可以快速的搭建一個(gè)漂亮、功能完備的網(wǎng)站。比如:下拉菜單、按鈕組、按鈕下拉菜單、導(dǎo)航、導(dǎo)航條、路徑導(dǎo)航、分頁(yè)、排版、縮略圖、警告對(duì)話框、進(jìn)度條、媒體對(duì)象等。 JavaScript插件Bootstrap自帶了13個(gè)jQuery插件,這些插件為Bootstrap中的組件賦予了“生命”。其中包括:模式對(duì)話框、標(biāo)簽頁(yè)、滾動(dòng)條、彈出框等。 還有更重要的一點(diǎn)是,Bootstrap是完全開(kāi)源的。它的代碼托管,開(kāi)發(fā),維護(hù)都依賴GITHub平臺(tái)。
bootstrap框架優(yōu)點(diǎn):
a) 提高開(kāi)發(fā)效率。
b) 規(guī)范名稱(chēng)定義,便于維護(hù)。
c) 規(guī)范項(xiàng)目開(kāi)發(fā)流程
d)css代碼更清晰、簡(jiǎn)單。html代碼更合理。
e) 大規(guī)模項(xiàng)目中可以減少用戶下載
bootstrap框架缺點(diǎn):
a) 學(xué)習(xí)成本提高。你需要了解整個(gè)框架,需要閱讀框架的文檔。
b)css框架對(duì)于一個(gè)小項(xiàng)目等頁(yè)面來(lái)說(shuō)很臃腫。框架中可能有大部分你用不到的代碼。
c)可能會(huì)無(wú)法幫助你的技術(shù)提高。太依賴框架,以至于很難排除bug。包括框架中本身就帶的bug。
d) 選擇自己需要的框架與開(kāi)發(fā)框架都很痛苦。寫(xiě)到后面發(fā)現(xiàn)越來(lái)越不靈活,越來(lái)越臃腫。
評(píng)論
查看更多