虎說:bootstrap源碼解讀(重置模塊)

------------

開場show:前不生“不猶豫”,后半生“不后悔”。今天又逃課,我不后悔
素材:推特公司的前端框架bootstrap(下稱bt),解讀源碼(當然你也可以在官網分分鐘下載一個源碼包應用學習)
介紹:不介紹,著名的流行的框架,總有一大推的介紹
思考(或許會打自己臉):bt給我的感覺就像是人家寫好的模板,雖然是頂級公司寫的,但總感覺很別扭,就像廚師使用的是大師配置好,現成的高湯,料汁,只是在應用層。優秀的前端不應該自己配置調料嗎,最好的辦法,就是偷學,偷學,手里拿到人家不外傳的菜品祖傳秘制蜜汁,品嘗分析,之后自成一派,成為人生贏家(有沒有人家的感受),當然這是在廚師界,秘制不外傳。
理解畢竟是關乎吃飯的家伙事,被人學會怎么辦,在前端,風氣不一樣,就講究開源,所以咱賺了,把bt當成一個學習的途徑,品嘗大牛配置的湯料,閱讀優秀的代碼,是happy的,廢話講完....

------------
本文由:小老虎中午喝的蛋花湯,
電腦旁5cm長鉛筆,
bt還有normalize贊助

871918-20160405135753875-451464896.jpg

bt的重置模塊直接使用的是normalize(他是什么?一個優秀的瀏覽器默認樣式重置組件也好,文件也好)
如果你有興趣,直接搜索在文件中引入,或者使用sass和compass更加靈活運用它,說起compass就不得不提reset和normalize的關系(這里埋下伏筆)
使用bt做項目,既會引入normalize,他是嵌入在bt文件中的,在源碼開頭即可見
這里可能會出現代碼冗余的現象,也就是說,有些重置并不需要,你也可以修改源代碼,除了這個沒有其他更好的方法
我在這里對compass的reset模塊,和本文主角進行些許對比
重置宗旨“保證所有瀏覽器的統一”

1.normalize有(下稱nm)

  • 頁面重置組
  • block組
  • inline-block組
  • 文字格式化組
  • 表單重置組
  • 表格重置組

2.reset有(下稱rs)

  • 去邊距組
  • 去文字樣式組
  • block組
  • 去邊框組

整體模塊:

nm對body和html進行了邊距,字體,字號,行高的重置

疑惑:其中定義html字號為10號,body字號定義為14號,明顯頁面中的字號會繼承body的,于是html的字號等于多余(個人之見)

    在測試中也是如此,改變html的字號,并不會對頁面中的文字產生影響()
html {  font-size: 10px;  /*是不是10px,無意義*/ 
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);<br>   
font-family: sans-serif;         /*無意義*/}<br>body {<br>  
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;<br>  
font-size: 14px;          /*是不是14px,繼承者的爸爸*/<br>  
line-height: 1.42857143;<br>  color: #333;<br>  
background-color: #fff;<br>}

頁面中的文字會繼承那個呢,請看大屏幕

871918-20160405133106375-947647707.jpg

------------------分隔線--------------------

871918-20160405133120312-1255376255.jpg

疑問:正常情況下,會禁用body的字號嗎,或許是nm維護者設置的第二道防線
說明:這里html{font-size:10px}設置無意義,
還有html的字體設置{font-falimy:sans-serif;}也無意義,我真的想不出哪里有應用場景
-------------

block組:

你說html標簽中有哪些是display:block(塊級元素)的,div是不是,p是不是,ul ol dl是不是,都是??!然而新元素呢

div在瀏覽器中,默認是block,瀏覽器自動添加,看下面的大屏幕,

咱啥都沒有干,只在html中添加div還有header,article(沒有樣式表)

在firebug中發現

871918-20160405135050359-986511101.jpg
871918-20160405135102187-762884269.jpg

神奇:居然自動添加顯示屬性,里外呼應,正好
于是又出現疑問:既然瀏覽器會自動默認這些元素為block顯示屬性,為什么需要再加上去能呢,代碼又冗余

article,aside,details,figcaption,figure,footer,header,main,nav,section,summary{display: block;}/*源碼*/

再看上面的源碼就會發現,有增無減,多了三四個標簽,也許這就是需要加上去的理由
再說:列表中的標簽大多不需要更改display值,所以為了加強強度,和保證瀏覽器的統一性,加上了這句話
------------

inline-block組:
是啥?擺明了是不想兼容ie6,7,啥,那倆玩意兒連video都不支持,好吧,看來他已經被拋棄
需要ie6 7這倆古董兼容inline-block的話,是這樣寫的

{display:inline-block;
*display:inline;
*zoom:1;}

而nm是這樣的

audio,canvas,progress,video {display: inline-block;
vertical-align: baseline;}

國外就是好,把時間放在更好的屬性研究上面
疑問:為什么沒有inline組呢,難道是看不起內聯樣式?
OH,別煩我好嗎(待研究)
------------

文字格式化組:
并沒有說頭,個人喜好,隨意定制,
原諒我這一生不羈放縱愛自由

表單重置組:
這里只對基本的屬性做了重置,看了半天,也說不出一個花來,行高,邊距
對不同屬性框的重置,搜索框,數字框,單選框,復選框
如果你想有更深的體會的話,還是自行下載bootstrap源代碼學習,并且他完全不要錢


表格重置組:
表格的使用場景,布局,數據,反正我就只試過這兩個用途
說起布局,我就想到使用表格做表單的布局,說起來有點繞,但是以前有小伙伴說,為了語義化,所以不使用table做表格布局,我當然同意
不過表格輸入框這種等于是小布局,就算是使用語義化,也沒有適合的標簽可以使用
見得最多的是使用div ul ol dl做表單的布局
看大屏幕:

871918-20160405144802062-572264168.jpg

網易注冊頁,表單使用的是dl,壯觀,如果使用table布局呢,我就說,有一次我還用了呢

871918-20160405145004812-1060270284.jpg

咱大汽車之家

壯觀的tr,不管怎么樣,咱之家還是年收入過億
(以后深入探討使用table做表單布局)
------------

尾部:normalize是一個好東西,bootstrap也是好東西(詞窮)

申明:本文中的觀點只是博主的觀點
如果有疏漏那也是正常的,歡迎各行業大神
前來交流辯駁!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,156評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,401評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 176,069評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,873評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,635評論 6 408
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,128評論 1 323
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,203評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,365評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,881評論 1 334
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,733評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,935評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,475評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,172評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,582評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,821評論 1 282
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,595評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,908評論 2 372

推薦閱讀更多精彩內容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,775評論 1 92
  • Bootstrap是什么? 一套易用、優雅、靈活、可擴展的前端工具集--BootStrap。GitHub上介紹 的...
    凜0_0閱讀 10,906評論 3 184
  • ?前端面試題匯總 一、HTML和CSS 21 你做的頁面在哪些流覽器測試過?這些瀏覽器的內核分別是什么? ...
    Simon_s閱讀 2,225評論 0 8
  • ¥開啟¥ 【iAPP實現進入界面執行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 6,482評論 0 17
  • ——世事輪回,因緣際會,紅塵一行,皆是定數。 茫茫人海,有些人只消一眼便可知是紅塵擦肩還是命中注定。 就像和姑第一...
    季淮安閱讀 763評論 9 6