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

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

開場show:前不生“不猶豫”,后半生“不后悔”飘弧。今天又逃課识藤,我不后悔
素材:推特公司的前端框架bootstrap(下稱bt)砚著,解讀源碼(當(dāng)然你也可以在官網(wǎng)分分鐘下載一個(gè)源碼包應(yīng)用學(xué)習(xí))
介紹:不介紹,著名的流行的框架痴昧,總有一大推的介紹
思考(或許會(huì)打自己臉):bt給我的感覺就像是人家寫好的模板稽穆,雖然是頂級(jí)公司寫的,但總感覺很別扭赶撰,就像廚師使用的是大師配置好舌镶,現(xiàn)成的高湯,料汁扣囊,只是在應(yīng)用層乎折。優(yōu)秀的前端不應(yīng)該自己配置調(diào)料嗎,最好的辦法侵歇,就是偷學(xué)骂澄,偷學(xué),手里拿到人家不外傳的菜品祖?zhèn)髅刂泼壑杪牵穱L分析坟冲,之后自成一派,成為人生贏家(有沒有人家的感受)溃蔫,當(dāng)然這是在廚師界健提,秘制不外傳。
理解畢竟是關(guān)乎吃飯的家伙事伟叛,被人學(xué)會(huì)怎么辦私痹,在前端,風(fēng)氣不一樣统刮,就講究開源紊遵,所以咱賺了,把bt當(dāng)成一個(gè)學(xué)習(xí)的途徑侥蒙,品嘗大牛配置的湯料暗膜,閱讀優(yōu)秀的代碼,是happy的鞭衩,廢話講完....

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

871918-20160405135753875-451464896.jpg

bt的重置模塊直接使用的是normalize(他是什么论衍?一個(gè)優(yōu)秀的瀏覽器默認(rèn)樣式重置組件也好瑞佩,文件也好)
如果你有興趣,直接搜索在文件中引入坯台,或者使用sass和compass更加靈活運(yùn)用它炬丸,說起compass就不得不提reset和normalize的關(guān)系(這里埋下伏筆)
使用bt做項(xiàng)目,既會(huì)引入normalize捂人,他是嵌入在bt文件中的御雕,在源碼開頭即可見
這里可能會(huì)出現(xiàn)代碼冗余的現(xiàn)象,也就是說滥搭,有些重置并不需要酸纲,你也可以修改源代碼,除了這個(gè)沒有其他更好的方法
我在這里對(duì)compass的reset模塊瑟匆,和本文主角進(jìn)行些許對(duì)比
重置宗旨“保證所有瀏覽器的統(tǒng)一”

1.normalize有(下稱nm)

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

2.reset有(下稱rs)

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

整體模塊:

nm對(duì)body和html進(jìn)行了邊距闽坡,字體,字號(hào)愁溜,行高的重置

疑惑:其中定義html字號(hào)為10號(hào)疾嗅,body字號(hào)定義為14號(hào),明顯頁面中的字號(hào)會(huì)繼承body的冕象,于是html的字號(hào)等于多余(個(gè)人之見)

    在測試中也是如此代承,改變html的字號(hào),并不會(huì)對(duì)頁面中的文字產(chǎn)生影響()
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>}

頁面中的文字會(huì)繼承那個(gè)呢,請(qǐng)看大屏幕

871918-20160405133106375-947647707.jpg

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

871918-20160405133120312-1255376255.jpg

疑問:正常情況下墓律,會(huì)禁用body的字號(hào)嗎膀估,或許是nm維護(hù)者設(shè)置的第二道防線
說明:這里html{font-size:10px}設(shè)置無意義,
還有html的字體設(shè)置{font-falimy:sans-serif耻讽;}也無意義察纯,我真的想不出哪里有應(yīng)用場景
-------------

block組:

你說html標(biāo)簽中有哪些是display:block(塊級(jí)元素)的,div是不是针肥,p是不是饼记,ul ol dl是不是,都是W媲握恳!然而新元素呢

div在瀏覽器中,默認(rèn)是block捺僻,瀏覽器自動(dòng)添加乡洼,看下面的大屏幕,

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

在firebug中發(fā)現(xiàn)

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

神奇:居然自動(dòng)添加顯示屬性,里外呼應(yīng)葛峻,正好
于是又出現(xiàn)疑問:既然瀏覽器會(huì)自動(dòng)默認(rèn)這些元素為block顯示屬性锹雏,為什么需要再加上去能呢,代碼又冗余

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

再看上面的源碼就會(huì)發(fā)現(xiàn)术奖,有增無減礁遵,多了三四個(gè)標(biāo)簽轻绞,也許這就是需要加上去的理由
再說:列表中的標(biāo)簽大多不需要更改display值,所以為了加強(qiáng)強(qiáng)度佣耐,和保證瀏覽器的統(tǒng)一性政勃,加上了這句話
------------

inline-block組:
是啥?擺明了是不想兼容ie6兼砖,7,啥奸远,那倆玩意兒連video都不支持,好吧讽挟,看來他已經(jīng)被拋棄
需要ie6 7這倆古董兼容inline-block的話懒叛,是這樣寫的

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

而nm是這樣的

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

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

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

表單重置組:
這里只對(duì)基本的屬性做了重置妥凳,看了半天竟贯,也說不出一個(gè)花來,行高逝钥,邊距
對(duì)不同屬性框的重置屑那,搜索框,數(shù)字框艘款,單選框持际,復(fù)選框
如果你想有更深的體會(huì)的話,還是自行下載bootstrap源代碼學(xué)習(xí)哗咆,并且他完全不要錢


表格重置組:
表格的使用場景蜘欲,布局,數(shù)據(jù)晌柬,反正我就只試過這兩個(gè)用途
說起布局姥份,我就想到使用表格做表單的布局,說起來有點(diǎn)繞年碘,但是以前有小伙伴說澈歉,為了語義化,所以不使用table做表格布局屿衅,我當(dāng)然同意
不過表格輸入框這種等于是小布局埃难,就算是使用語義化,也沒有適合的標(biāo)簽可以使用
見得最多的是使用div ul ol dl做表單的布局
看大屏幕:

871918-20160405144802062-572264168.jpg

網(wǎng)易注冊(cè)頁,表單使用的是dl涡尘,壯觀忍弛,如果使用table布局呢,我就說考抄,有一次我還用了呢

871918-20160405145004812-1060270284.jpg

咱大汽車之家

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

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

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末挑势,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子啦鸣,更是在濱河造成了極大的恐慌潮饱,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,273評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诫给,死亡現(xiàn)場離奇詭異香拉,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)中狂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門凫碌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人胃榕,你說我怎么就攤上這事盛险。” “怎么了勋又?”我有些...
    開封第一講書人閱讀 167,709評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵苦掘,是天一觀的道長。 經(jīng)常有香客問我楔壤,道長鹤啡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,520評(píng)論 1 296
  • 正文 為了忘掉前任蹲嚣,我火速辦了婚禮递瑰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘隙畜。我一直安慰自己泣矛,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評(píng)論 6 397
  • 文/花漫 我一把揭開白布禾蚕。 她就那樣靜靜地躺著您朽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上哗总,一...
    開封第一講書人閱讀 52,158評(píng)論 1 308
  • 那天几颜,我揣著相機(jī)與錄音,去河邊找鬼讯屈。 笑死蛋哭,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的涮母。 我是一名探鬼主播谆趾,決...
    沈念sama閱讀 40,755評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼叛本!你這毒婦竟也來了沪蓬?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,660評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤来候,失蹤者是張志新(化名)和其女友劉穎跷叉,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體营搅,經(jīng)...
    沈念sama閱讀 46,203評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡云挟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了转质。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片园欣。...
    茶點(diǎn)故事閱讀 40,427評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖休蟹,靈堂內(nèi)的尸體忽然破棺而出俊庇,到底是詐尸還是另有隱情,我是刑警寧澤鸡挠,帶...
    沈念sama閱讀 36,122評(píng)論 5 349
  • 正文 年R本政府宣布辉饱,位于F島的核電站,受9級(jí)特大地震影響拣展,放射性物質(zhì)發(fā)生泄漏彭沼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評(píng)論 3 333
  • 文/蒙蒙 一备埃、第九天 我趴在偏房一處隱蔽的房頂上張望姓惑。 院中可真熱鬧,春花似錦按脚、人聲如沸于毙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽唯沮。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間介蛉,已是汗流浹背萌庆。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留币旧,地道東北人践险。 一個(gè)月前我還...
    沈念sama閱讀 48,808評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像吹菱,于是被迫代替她去往敵國和親巍虫。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案鳍刷? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,756評(píng)論 1 92
  • Bootstrap是什么占遥? 一套易用、優(yōu)雅倾剿、靈活、可擴(kuò)展的前端工具集--BootStrap蚌成。GitHub上介紹 的...
    凜0_0閱讀 10,881評(píng)論 3 184
  • ?前端面試題匯總 一前痘、HTML和CSS 21 你做的頁面在哪些流覽器測試過?這些瀏覽器的內(nèi)核分別是什么? ...
    Simon_s閱讀 2,220評(píng)論 0 8
  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個(gè)線程担忧,因...
    小菜c閱讀 6,440評(píng)論 0 17
  • ——世事輪回芹缔,因緣際會(huì),紅塵一行瓶盛,皆是定數(shù)最欠。 茫茫人海,有些人只消一眼便可知是紅塵擦肩還是命中注定惩猫。 就像和姑第一...
    季淮安閱讀 750評(píng)論 9 6