reset.css
在HTML標簽在瀏覽器里有默認的樣式萧吠,例如 p 標簽有上下邊距左冬,strong標簽有字體加粗樣式,em標簽有字體傾斜樣式纸型。不同瀏覽器的默認樣式之間也會有差別拇砰,例如ul默認帶有縮進的樣式,在IE下狰腌,它的縮進是通過margin實現(xiàn)的除破,而Firefox下,它的縮進是由padding實現(xiàn)的琼腔。在切換頁面的時候瑰枫,瀏覽器的默認樣式往往會給我們帶來麻煩,影響開發(fā)效率丹莲。所以解決的方法就是一開始就將瀏覽器的默認樣式全部去掉光坝,更準確說就是通過重新定義標簽樣式』浚“覆蓋”瀏覽器的CSS默認屬性教馆。最最簡單的說法就是把瀏覽器提供的默認樣式覆蓋掉逊谋!這就是CSS reset擂达。
normalize.css
Normalize.css是一種CSS reset的替代方案。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)站上赫蛇。
Normalize vs Reset
1. Normalize.Css 保護了有價值的默認值
Reset通過為幾乎所有的元素施加默認樣式,強行使得元素有相同的視覺效果雾叭。相比之下悟耘,Normalize.css保持了許多默認的瀏覽器樣式。這就意味著你不用再為所有公共的排版元素重新設(shè)置樣式织狐。當(dāng)一個元素在不同的瀏覽器中有不同的默認值時暂幼,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中就不會有這樣的問題套菜。
4. Normalize.Css 是模塊化的
這個項目已經(jīng)被拆分為多個相關(guān)卻又獨立的部分,這使得你能夠很容易也很清楚地知道哪些元素被設(shè)置了特定的值设易。因此這能讓你自己選擇性地移除掉某些永遠不會用到部分(比如表單的一般化)逗柴。
5. Normalize.Css 擁有詳細的文檔
Normalize.css的代碼基于詳細而全面的跨瀏覽器研究與測試。這個文件中擁有詳細的代碼說明并在Github Wiki中有進一步的說明顿肺。這意味著你可以找到每一行代碼具體完成了什么工作戏溺、為什么要寫這句代碼、瀏覽器之間的差異屠尊,并且你可以更容易地進行自己的測試旷祸。