摘要:通過閱讀發(fā)現(xiàn)了不少知識(shí)的盲點(diǎn)和誤解,對(duì)有了更深入的理解。總結(jié)幾點(diǎn)印象較深的體會(huì),分享給大家。但是通過閱讀源碼改變了這種認(rèn)識(shí)模塊化很簡(jiǎn)單靈活,這是其優(yōu)點(diǎn),同時(shí)也是一個(gè)缺點(diǎn)。
歡迎到個(gè)人博客參觀: 點(diǎn)擊這里
bootstrap已經(jīng)使用了很長時(shí)間,但是從來沒有好好研究過其設(shè)計(jì)結(jié)構(gòu),春節(jié)期間閑來無事就閱讀了源碼。通過閱讀發(fā)現(xiàn)了不少知識(shí)的盲點(diǎn)和誤解,對(duì)css有了更深入的理解。總結(jié)幾點(diǎn)印象較深的體會(huì),分享給大家。
1. 移動(dòng)優(yōu)先在移動(dòng)互聯(lián)網(wǎng)時(shí)代,很多公司都堅(jiān)持移動(dòng)端優(yōu)先的原則,bootstrap也迎合了這種需求,具體表現(xiàn)在如下方面:
相對(duì)單位: %、rem的大量使用
grid系統(tǒng): 為了使用不同的設(shè)備,grid系統(tǒng)對(duì)xs、sm、md、lg、xl進(jìn)行了響應(yīng)式設(shè)計(jì),通過media query做到適配
支持flexbox: mobile應(yīng)該很快就可以使用flexbox
2. 代碼結(jié)構(gòu) 2.1 從less到saas使用sass作為bootstrap的css預(yù)處理器,以前對(duì)預(yù)處理器不是很感冒,認(rèn)為將簡(jiǎn)單問題復(fù)雜化了。但是通過閱讀源碼改變了這種認(rèn)識(shí):
css模塊化: css很簡(jiǎn)單、靈活,這是其優(yōu)點(diǎn),同時(shí)也是一個(gè)缺點(diǎn)。通過sass預(yù)處理器,可以根據(jù)功能將css模塊化,便于css的管理
復(fù)用: 變量、mixin、function等技術(shù),可以方便地進(jìn)行代碼復(fù)用
簡(jiǎn)潔: 支持each、if等語法,動(dòng)態(tài)輸出內(nèi)容,例如繁瑣的grid系統(tǒng),是通過少量的sass代碼做到的
2.2 代碼層次根據(jù)代碼的層次,sass的源碼分為如下幾部分:
支撐部分: 包括變量定義、大量的mixin文件,這是整個(gè)bootstrap的基礎(chǔ)代碼,也是進(jìn)行個(gè)性化定制的其實(shí)位置
全局部分: normalize.scss用于覆蓋各種瀏覽器的默認(rèn)行為,保證起始樣式的一致性
基礎(chǔ)樣式部分: 包含了reboot、typography、images、code、table、forms、buttons等,主要是一些常用的基礎(chǔ)html元素
grid部分: 選擇性支持flexbox,默認(rèn)情況下是關(guān)閉的,只要將$enable-flex=true就可以使用flexbox完成頁面的柵格布局
組件部分: 包含大量常用的基礎(chǔ)組件,有些需要添加jQuery plugin
工具類部分: 常用的簡(jiǎn)單樣式,例如間距、文本對(duì)齊、字體加粗等
3. GridGrid用于頁面的整體布局,同時(shí)css3也在起草grid布局模塊。Grid也可以多帶帶使用,bootstrap4提供了一個(gè)多帶帶的文件(bootstrap-grid.scss)來實(shí)現(xiàn)柵格系統(tǒng),具體來說Grid有如下特點(diǎn):
默認(rèn)情況下是12柵格
柵格可以嵌套使用
支持5種尺寸下的響應(yīng)式樣式
5個(gè)尺寸可以組合使用,適配不同終端下終端
支持使用flexbox
4. flexboxflexbox目前還處于草案階段,不過高級(jí)瀏覽器已經(jīng)開始支持,如果只考慮高版本瀏覽器的話,可以啟動(dòng)通過$enable-flex=true來啟動(dòng)flexbox。
flexbox是未來布局的趨勢(shì),尤其是在復(fù)雜頁面布局上,總得來說具有如下幾個(gè)優(yōu)點(diǎn):
可伸縮性: 通過flex來實(shí)現(xiàn)空間的伸縮,在響應(yīng)式設(shè)計(jì)中更加靈活(無需關(guān)注margin、padding、border等)
順序定制: flexbox的一大亮點(diǎn),通過order指定元素的顯示順序
輕松對(duì)齊: 通過jsutify-content、align-items可以方便實(shí)現(xiàn)元素的對(duì)齊
方向性: 通過flex-flow方便確定布局的方向
5. 組件設(shè)計(jì)bootstrap里面提供了大量的常用組件,可以直接使用或者簡(jiǎn)單進(jìn)行二次開發(fā),加快日常業(yè)務(wù)的開發(fā)速度。同時(shí),有些組件需要跟js(jQuery)配合,實(shí)現(xiàn)組件的交互效果。
里面的組件按是否需要js,可以分為兩類:
無需js配合: Button系列、Form、Input系列、DropDown、Jumbotron、Label、Alert、Cards、Nav系列、Breadcrumb、Pagination、Progress、List
需js配合: Modal、Tooltips、Popovers、Carousels
需要注意的是Cards是bootstrap4新增的組件。
6. 參考http://blog.getbootstrap.com/2015/08/19/bootstrap-4-alpha/
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/115037.html
摘要:對(duì)于非前后端分離應(yīng)用來說,應(yīng)該是目前的最佳前端框架之一了。所以下文中默認(rèn)使用的語法。可以使用的組件特性,來擴(kuò)展,這樣會(huì)在編輯的源碼,更加的有結(jié)構(gòu)引用引用編譯自定義源碼編譯自定義源碼參考參考摘要 因?yàn)榇蛩銓懸粋€(gè)小網(wǎng)站,而個(gè)人時(shí)間又不是那么充裕,所以沒有選擇前后端分離的架構(gòu)。 對(duì)于非前后端分離應(yīng)用來說,Bootstrap應(yīng)該是目前的最佳前端框架之一了。 而Bootstrap4,是Bootstra...
摘要:在這里面有一個(gè)新定義的類,它這個(gè)嵌入式展開后是,從結(jié)構(gòu)可以看出來,它就是加在元素上的,可以取消列的默認(rèn)間距。在這里我提供一個(gè)自定義的,名字也很簡(jiǎn)單。寫的時(shí)候注意順序,要按照升序排列,小的放在上面,即在上面,寫反了將失效。 本文所引用的版本為Bootstrap 4 Beta版,閱讀者請(qǐng)先下載好相關(guān)源文件。 時(shí)光荏苒,若后續(xù)版本代碼發(fā)生變化,將看心情進(jìn)行更新補(bǔ)充。如果你覺得本文不錯(cuò),歡迎...
摘要:前面說了的下載和簡(jiǎn)單使用,現(xiàn)在我們接著往下學(xué)習(xí),的響應(yīng)式布局主要依靠柵格系統(tǒng)來實(shí)現(xiàn)的。好了,柵格系統(tǒng)暫時(shí)先介紹到這了,有什么不懂的可以給老留言哦。前面說了Bootstrap4的下載和簡(jiǎn)單使用,現(xiàn)在我們接著往下學(xué)習(xí),Bootstrap4的響應(yīng)式布局主要依靠柵格系統(tǒng)來實(shí)現(xiàn)的。面老K先來講解一下Bootstrap4的柵格系統(tǒng),讓你能夠更快的了解Bootstrap4.(PS:更詳細(xì)的介紹請(qǐng)?jiān)L問原K先...
摘要:使用,已改為使用,所以首先解決編譯問題。編譯與無關(guān),需要在系統(tǒng)中安裝編譯環(huán)境。使用編譯源碼結(jié)構(gòu)簡(jiǎn)單分析源碼,其中文件夾包含了所有樣式文件源碼,部件和工具都是單獨(dú)的文件,很清晰。可以看到命令已成功運(yùn)行,及文件已經(jīng)生成。 環(huán)境: macOS 10.13.6 node.js 8.11.3 sass 1.10.3 bootstrap 4.1.3 vs code 1.25.1 ...
摘要:歷經(jīng)三年開發(fā),前端框架正式發(fā)布了。支持發(fā)布時(shí),曾放棄了對(duì)版本的支持,給很多用戶造成了麻煩,同樣的錯(cuò)誤不會(huì)犯第二次。在不久的將來,開發(fā)團(tuán)隊(duì)還會(huì)繼續(xù)修復(fù)的,改進(jìn)文檔。最終發(fā)布之后,的文檔也不會(huì)下線。除了發(fā)布外,官方還發(fā)布了主題。 歷經(jīng)三年開發(fā),前端框架Bootstrap 4正式發(fā)布了。然而今天的Web世界已經(jīng)和當(dāng)初Mark Otto發(fā)布Bootstrap時(shí)的情況大為不同,一些開發(fā)者由此質(zhì)疑...
閱讀 1766·2023-04-26 01:41
閱讀 3072·2021-11-23 09:51
閱讀 2733·2021-10-09 09:43
閱讀 9019·2021-09-22 15:13
閱讀 2452·2021-09-07 09:59
閱讀 2624·2019-08-30 15:44
閱讀 1132·2019-08-30 12:45
閱讀 2616·2019-08-30 12:43