如何做默認樣式重置?resetting 和 normalizing 之間有什么區(qū)別塔逃?

1.背景介紹

默認樣式重置出現(xiàn)的原因:因為現(xiàn)在的瀏覽器很多讯壶,并且每個瀏覽器都有自己的默認樣式,這樣就會導(dǎo)致一個頁面在多個瀏覽器下展示產(chǎn)生差異湾盗,所以我們需要做一些處理使每個瀏覽器下展示一致伏蚊,于是就出現(xiàn)了默認樣式重置的說法,可以說格粪,兼容性是CSS reset誕生的的主要原因之一躏吊,還有一方面的原因是類似于“庫”的作用(.l{float:left}氛改、.r{float:right}為了方便使用)。

最早的一份CSS reset來自Tantek的undohtml.css比伏,很簡單的代碼胜卤,Tantek根據(jù)自己的需要,對瀏覽器的默認樣式進行了一些重置赁项。(http://tantek.com/log/2004/undohtml.css)葛躏。其余一些有名的CSS reset如業(yè)界領(lǐng)袖Eric Meyer的reset(http://meyerweb.com/eric/tools/css/reset/),或是Tripoli Reset(http://monc.se/kitchen/124/introducing-tripoli)悠菜。

2.知識剖析

reset是什么舰攒?

我們可以把它叫做CSS重設(shè),也有人叫做CSS復(fù)位悔醋、默認CSS摩窃、CSS重置等。CSS重設(shè)就是由于各種瀏覽器解釋CSS樣式的初始值有所不同篙顺,導(dǎo)致設(shè)計師在沒有定義某個CSS屬性時偶芍,不同的瀏覽器會按照自己的默認值來為沒有定義的樣式賦值,所以我們要先定義好一些CSS樣式德玫,去“覆蓋”瀏覽器的CSS默認屬性,來讓所有瀏覽器都按照同樣的規(guī)則解釋CSS椎麦,這樣就能避免發(fā)生這種問題宰僧。

CSS reset的作用是讓各個瀏覽器的CSS樣式有一個統(tǒng)一的基準,而這個基準更多的就是“清零”观挎!如下面常見但事實上極不推薦的代碼:

*{ margin:0; padding:0; }

其中*就是常說的通配符琴儿,它代表了HTML里面任意一個標簽。 如上代碼所示嘁捷,很多人喜歡拿通配符做樣式重置造成,但是對于網(wǎng)站優(yōu)化而言,使用通配符的做法是非常不可取的雄嚣,因為這種做法相當消耗瀏覽器的性能晒屎。 原因在于星號代表任意一個標簽,當瀏覽器解析到星號時缓升, 就會將頁面中所有用到的標簽都進行一次樣式重置鼓鲁,不管這個標簽是否有這樣的默認樣式。雖然這種性能消耗可以被忽略不計港谊, 但是做為一個有責(zé)任心的web前端開發(fā)人員來說骇吭,如無必要,通配符還是盡量不要出現(xiàn)在樣式重置中歧寺。

以下是我找的幾個css reset的常用代碼燥狰,可以參考:

目前比較全的CSS重設(shè)(reset)方法總結(jié)----

http://blog.bingo929.com/css-reset-collection.html

HTML5 css reset------

http://www.zhangxinxu.com/wordpress/2010/08/html5-css-reset/

CSS工具:重置CSS-----

http://meyerweb.com/eric/tools/css/reset/

幾個CSS重置默認樣式reset.css代碼----

http://www.codefans.net/articles/756.shtml

css重置樣式表-----

http://blog.csdn.net/u014516981/article/details/52141451

normalize是什么棘脐?

Normalize.css只是一個很小的CSS文件,但它在默認的HTML元素樣式上提供了跨瀏覽器的高度一致性龙致。相比于傳統(tǒng)的CSS reset蛀缝,Normalize.css是一種現(xiàn)代的、為HTML5準備的優(yōu)質(zhì)替代方案净当。Normalize.css現(xiàn)在已經(jīng)被用于Twitter Bootstrap内斯、HTML5 Boilerplate、GOV.UK像啼、Rdio俘闯、CSS Tricks以及許許多多其他框架、工具和網(wǎng)站上忽冻。

github上的源碼:https://github.com/necolas/normalize.css

normalize創(chuàng)造的目的

1.保護有用的瀏覽器默認樣式而不是完全去掉它們

2.一般化的樣式:為大部分HTML元素提供

3.修復(fù)瀏覽器自身的bug并保證各瀏覽器的一致性

4.優(yōu)化CSS可用性

5.解釋代碼:擁有注釋和詳細的文檔

reset和normalize的區(qū)別:

1. Normalize.css保護了有價值的默認值

Reset通過為幾乎所有的元素施加默認樣式真朗,強行使得元素有相同的視覺效果。相比之下僧诚,Normalize.css保持了許多默認的瀏覽器樣式遮婶。這就意味著你不用再為所有公共的排版元素重新設(shè)置樣式。當一個元素在不同的瀏覽器中有不同的默認值時湖笨,Normalize.css會力求讓這些樣式保持一致并盡可能與現(xiàn)代標準相符合旗扑。

2. Normalize.css修復(fù)了瀏覽器的bug

它修復(fù)了常見的桌面端和移動端瀏覽器的bug。這往往超出了Reset所能做到的范疇慈省。關(guān)于這一點臀防,Normalize.css修復(fù)的問題包含了HTML5元素的顯示設(shè)置、預(yù)格式化文字的font-size問題边败、在IE9中SVG的溢出袱衷、許多出現(xiàn)在各瀏覽器和操作系統(tǒng)中的與表單相關(guān)的bug。

3. Normalize.css不會讓你的調(diào)試工具變的雜亂

使用Reset最讓人困擾的地方莫過于在瀏覽器調(diào)試工具中大段大段的繼承鏈笑窜,如下圖所示致燥。在Normalize.css中就不會有這樣的問題,因為在我們的準則中對多選擇器的使用時非常謹慎的排截,我們僅會有目的地對目標元素設(shè)置樣式嫌蚤。

4. Normalize.css是模塊化的

這個項目已經(jīng)被拆分為多個相關(guān)卻又獨立的部分,這使得你能夠很容易也很清楚地知道哪些元素被設(shè)置了特定的值匾寝。因此這能讓你自己選擇性地移除掉某些永遠不會用到部分(比如表單的一般化)搬葬。

5. Normalize.css擁有詳細的文檔

Normalize.css的代碼基于詳細而全面的跨瀏覽器研究與測試。這個文件中擁有詳細的代碼說明并在Github Wiki中有進一步的說明艳悔。這意味著你可以找到每一行代碼具體完成了什么工作急凰、為什么要寫這句代碼、瀏覽器之間的差異,并且你可以更容易地進行自己的測試抡锈。

總得來說疾忍,CSS Reset是革命黨,CSS Reset里最激進那一派提倡不管你有用沒用床三,通通給我脫了衣服一罩,于是*{margin:0;}等等運動,把人家全拍了撇簿∧粼ǎ看似是眾生平等了,實則是浪費了資源又占不到便宜四瘫,有求于人家的時候還得給加回去汉嗽,實在需要人家的默認樣式了怎么辦?自己看著辦吧找蜜。

Normalize.css是改良派饼暑。他們提倡,各個元素都有其存在的道理洗做,簡單粗暴地一視同仁是不好的弓叛。誰都有誰的作用,給他們制定個規(guī)范诚纸,確保他們在任何瀏覽器里都干好自己的活兒就好了撰筷。

來源于‘知乎用戶‘(侵刪):

https://www.zhihu.com/question/20094066/answer/25004727

3.常見問題

要如何選用reset和normalize?或者直接不用畦徘?

4.解決方案

這需要以自身的需求為基點出發(fā)去選擇闭专,是個公說公有理婆說婆有理的事,故而在此只給出一些建議:

1.如果要使用reset旧烧。盡量不要跟風(fēng)的去直接拷貝CSS reset的代碼,自己網(wǎng)站上沒用到的不用重置画髓,無意義的重置不要(比如div本不需要{margin:0掘剪;padding:0}),盡量使用到的重置是高效簡潔的奈虾;

2.如果要使用normalize夺谁,可以將normalize.css作為自己項目的基礎(chǔ)CSS,自定義樣式值來滿足自己的需求肉微。(例如去掉a標簽自帶的下劃線和p標簽的自帶的margin)

3.如果選擇不用匾鸥,可以按自己的需要去寫適合自身的樣式重設(shè)代碼。

5.編碼實戰(zhàn)

Demo1-常用標簽的默認樣式展示:http://119.10.57.69:880/ptt147/Lesson/css-12-ResetAndNormalize/demo1.html

Demo2-用reset代碼之后的樣式展示:http://119.10.57.69:880/ptt147/Lesson/css-12-ResetAndNormalize/demo2.html

Demo3-用normalize.css之后的樣式展示:http://119.10.57.69:880/ptt147/Lesson/css-12-ResetAndNormalize/demo3.html

6.擴展思考

到底該不該用CSS reset碉纳?

https://www.zhihu.com/question/23554164

7.參考文獻

張鑫旭-《CSS reset的重新審視–避免樣式重置》:

http://www.zhangxinxu.com/wordpress/2010/04/css-reset%E7%9A%84%E9%87%8D%E6%96%B0%E5%AE%A1%E8%A7%86-%E9%81%BF%E5%85%8D%E6%A0%B7%E5%BC%8F%E9%87%8D%E7%BD%AE/

作者寫的介紹:來勿负,讓我們談一談Normalize.css

http://jerryzou.com/posts/aboutNormalizeCss/

Normalize.css與傳統(tǒng)的CSS Reset有哪些區(qū)別?

https://www.zhihu.com/question/20094066/answer/25004727

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末劳曹,一起剝皮案震驚了整個濱河市奴愉,隨后出現(xiàn)的幾起案子琅摩,更是在濱河造成了極大的恐慌,老刑警劉巖锭硼,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件房资,死亡現(xiàn)場離奇詭異,居然都是意外死亡檀头,警方通過查閱死者的電腦和手機轰异,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來暑始,“玉大人搭独,你說我怎么就攤上這事〗裕” “怎么了戳稽?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長期升。 經(jīng)常有香客問我惊奇,道長,這世上最難降的妖魔是什么播赁? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任颂郎,我火速辦了婚禮,結(jié)果婚禮上容为,老公的妹妹穿的比我還像新娘乓序。我一直安慰自己,他們只是感情好坎背,可當我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布替劈。 她就那樣靜靜地躺著,像睡著了一般得滤。 火紅的嫁衣襯著肌膚如雪陨献。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天懂更,我揣著相機與錄音眨业,去河邊找鬼。 笑死沮协,一個胖子當著我的面吹牛龄捡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播慷暂,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼聘殖,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起就斤,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤悍募,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后洋机,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坠宴,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年绷旗,在試婚紗的時候發(fā)現(xiàn)自己被綠了喜鼓。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡衔肢,死狀恐怖庄岖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情角骤,我是刑警寧澤隅忿,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站邦尊,受9級特大地震影響背桐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蝉揍,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一链峭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧又沾,春花似錦弊仪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至滑燃,卻和暖如春曲横,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背不瓶。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留灾杰,地道東北人蚊丐。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像艳吠,于是被迫代替她去往敵國和親麦备。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,033評論 2 355

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