Normalize.css 與傳統的 CSS Reset 有哪些區別?

Normalize.css: http://nicolasgallagher.com/about-normalize-css/


CSS Reset 是革命黨,CSS Reset 里最激進那一派提倡不管你小子有用沒用,通通給我脫了那身衣服,憑什麼你 body 出生就穿一圈 margin,憑什麼你姓 h 的比別人吃得胖,憑什麼你 ul 戴一胳膊珠子。於是 *{margin:0;} 等等運動,把人家全拍扁了。看似是眾生平等了,實則是浪費了資源又占不到便宜,有求於人家的時候還得賤賤地給加回去,實在需要人家的默認樣式了怎麼辦?人家鍋都扔爐子里燒了,自己看著辦吧。

Normalize.css 是改良派。他們提倡,各個元素都有其存在的道理,簡單粗暴地一視同仁是不好的。body 那一圈確實擠壓了頁面的生存空間,那就改掉。士農工商,誰有誰的作用,給他們制定個規範,確保他們在任何瀏覽器里都干好自己的活兒。


Normalize 相對「平和」,注重通用的方案,重置掉該重置的樣式,保留有用的 user agent 樣式,同時進行一些 bug 的修復,這點是 reset 所缺乏的。

Reset 相對「暴力」,不管你有沒有用,統統重置成一樣的效果,且影響的範圍很大,講求跨瀏覽器的一致性。

Normalize 給我的感覺就是不講求樣式一致,而講求通用性和可維護性。

這點可以從詳細的注釋和模塊化的結構體現出來。

另外還有一點是,據說 reset 會破壞一些 debugging tool 的樣式,這我沒碰到過。


樓上講的都很對!

此篇文章也很詳細的解釋了兩者的不同:Applying Normalize.css Reset


題主你是懶得看英文嗎?Normalize.css的作者Nicolas通篇都是在說normalize.css與傳統css reset的差別啊。

我前不久剛翻譯了一下這篇文章,作者已經說的很全面了,供你參考:Jerry的樂園 | 來,讓我們談一談 Normalize.css


在Reset 的基礎上給一些有特殊意義的標籤加上默認樣式,就成了 Normalize


http://stackoverflow.com/questions/6887336/what-is-the-difference-between-normalize-css-and-reset-css

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


吐一吐css reset的苦水:之前用網易的css框架NEC : 更好的CSS樣式解決方案 ;那真的是一種折磨。(選擇他是因為它兼容ie6).但是它需要css reset。這然你在後面加自己的css樣式的時候很痛苦。試想h1-h6標籤都變小了,然後整個頁面的字體變得只有12px那樣的大小。給人的視覺的體驗是很差的。

如果你的團隊的前端水平並不是很高我建議使用Normaliz.css如果忒厲害。那麼還用啥css reset。這是給前端不精通的人用的


1.Normalize.css是保留瀏覽器的原來樣式並且做到每個瀏覽顯示一致。

2.CSS Reset相反把瀏覽器的默認樣式都重置了


這是很簡單的 從字面上理解就可以了

reset 清空重置 格殺勿論 片甲不留

normalize 道法自然 去偽存真 阿彌陀佛


然而我選擇reset.css

而且我還更激進的把更多自帶的效果乾了,

裝逼之前確定你明確的知道哪些是有用的?

哪些是沒用的?

為啥就沒用?

為啥就有用?

這些都他么是哲學問題啊!

我搞不清楚,所以全乾掉,寫起爽就是了,畢竟設計師不知道h1默認該多大,p默認該多少行高………

任何實用的東西別扯到談哲學的高度


個人理解:

reset固然是將瀏覽器默認樣式完全清空,normalize也確保了個瀏覽器的默認樣式的一致性,但是這又能如何呢?

兩者雖然不同,但它們畢竟是代碼,是否符合目標項目,不應該看它們本身的實現,還要看我們自己如何改變它們。其實討論那麼多,無非是「reset幹了多餘的活兒,normalize做了無用功」,與其在這痛苦選擇,倒不如撮合一下這對兒冤家,讓它們「在一起」』,並使它們更符合現有項目需求,且不會因為重寫重置的代碼而浪費資源,再加上sass管理,開發效率會有很大提升,自定義個generator,你懂得。


區別上面都說了,自己習慣用哪個就用哪個,不用糾結,我比較喜歡reset,h1 h2 h3 這些默認樣式難道實際用的時候就不用改?根據排版情況,字體顏色什麼的都是不一樣的


這個和*{padding:0;margin:0;}有區別么?


Normalize.css定義是css在項目中應用到的真沒幾個


推薦閱讀:

SCSS 有那些優勢,是否可以全面取代CSS?
大家都是怎麼玩node.js的?
ReactJS 真的好嗎?
相比 React 全家桶,選擇 Vue2 有何優劣?
為什麼都說富文本編輯器是天坑?

TAG:網頁設計 | 前端開發 | CSS | CSSReset |