Normalize.css VS reset.css 重置浏览器默认样式_蓝戒的博客


Normalize.css VS reset.css 重置浏览器默认样式

normalize

Normalize.css 简介

Normalize.css 是一个可以定制的CSS文件,它让不同的浏览器在渲染网页元素的时候形式更统一。

官方网站:http://necolas.github.io/normalize.css/

浏览器支持情况:Chrome, Firefox, Opera, Safari 6+, IE 8+

一般前端工程师都会使用 reset.css 去处理不同浏览器的默认样式,这里推荐使用Normalize.css

Normalize.css有哪些优点

1)不像其他CSS resets,normalize.css保存了有用的默认设置
2)大范围的规范了HTML元素样式
3)纠正了浏览器间的一些bug及不一样的表现形式
4)精心的改进提高了可用性
5)使用详细的注释解释了代码的作用

Normalize.css 与 CSS Reset 有什么区别?

相比于传统的CSS reset,Normalize.css是一种现代的、为HTML5准备的优质替代方案。Normalize.css现在已经被用于Twitter Bootstrap、HTML5 Boilerplate、GOV.UK、Rdio、CSS Tricks 以及许许多多其他框架、工具和网站上。相比其它的 reset.css,Normalize.css 保留有用的默认样式,不像其它 reset.css 那么彻底,移除了每个默认样式,然后又得费神把需要的样式再加回来。Normalize.css 定义绝大多数元素的默认样式,并且还提高了一些元素的可用性,并且代码都有详细的注释。

Normalize.css支持包括手机浏览器在内的超多浏览器,同时对HTML5元素、排版、列表、嵌入的内容、表单和表格都进行了一般化。尽管这个项目基于一般化的原则,但我们还是在合适的地方使用了更实用的默认值。

Normalize.css 保护了有价值的默认值:

Reset通过为几乎所有的元素施加默认样式,强行使得元素有相同的视觉效果。相比之下,Normalize.css保持了许多默认的浏览器样式。这就意味着你不用再为所有公共的排版元素重新设置样式。当一个元素在不同的浏览器中有不同的默认值时,Normalize.css会力求让这些样式保持一致并尽可能与现代标准相符合。

Normalize.css 修复了浏览器的bug:

它修复了常见的桌面端和移动端浏览器的bug。这往往超出了Reset所能做到的范畴。关于这一点,Normalize.css修复的问题包含了HTML5元素的显示设置、预格式化文字的font-size问题、在IE9中SVG的溢出、许多出现在各浏览器和操作系统中的与表单相关的bug

HTML5中新出现的input类型searchNormalize.css是如何保证跨浏览器的一致性的:

/**
 * 1. Addresses appearance set to searchfield in S5, Chrome
 * 2. Addresses box-sizing set to border-box in S5, Chrome (include -moz to future-proof)
 */

input[type="search"] {
  -webkit-appearance: textfield; /* 1 */
  -moz-box-sizing: content-box;
  -webkit-box-sizing: content-box; /* 2 */
  box-sizing: content-box;
}

/**
 * Removes inner padding and search cancel button in S5, Chrome on OS X
 */

input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button {
  -webkit-appearance: none;
}

Normalize.css是模块化的:
这个项目已经被拆分为多个相关却又独立的部分,这使得你能够很容易也很清楚地知道哪些元素被设置了特定的值。因此这能让你自己选择性地移除掉某些永远不会用到部分(比如表单的一般化)。
Normalize.css 让你的调试工具更清晰:

使用Reset最让人困扰的地方莫过于在浏览器调试工具中大段大段的继承链,如下图所示。在Normalize.css中就不会有这样的问题,因为在我们的准则中对多选择器的使用时非常谨慎的,我们仅会有目的地对目标元素设置样式。

Normalize.css 拥有详细的文档:

Normalize.css的代码基于详细而全面的跨浏览器研究与测试。这个文件中拥有详细的代码说明并在Github Wiki中有进一步的说明。这意味着你可以找到每一行代码具体完成了什么工作、为什么要写这句代码、浏览器之间的差异,并且你可以更容易地进行自己的测试。

这个项目的目标是帮助人们了解浏览器默认是如何渲染元素的,同时也让人们很容易地明白如何改进浏览器渲染。

Normalize.css是reset.css的优质替代方案:

normalize.css可以用来代替reset.css.它是由 @necolas@jon_neal花费了100多个小时广泛研究各浏览器之间的样式差异研究而成的产品。该项目依赖于研究浏览器默认元素风格之间的差异,精确定位需要重置的样式。这是一个现代的,HTML5-ready 的 CSS 重置样式集。HTML5 Boilerplate选择Normalize.css重置CSS。如果项目计划引入Twitter Bootstrap、YUI 3这些前端框架的话则可以移除,因为这些框架已经内置了Normalize.css。

Normalize.css的使用方法:

可以使用cdn引用,cnd加速normalize.css的具体版本进入http://www.bootcdn.cn/normalize/ 引用,下载引用如下:

首先,安装或从Github下载Normalize.css,接下来有两种主要途径去使用它。

  • 策略一:将normalize.css作为你自己项目的基础CSS,自定义样式值以满足设计师的需求。
  • 策略二:引入normalize.css源码并在此基础上构建,在必要的时候用你自己写的CSS覆盖默认值。

normalize.css项目源码注释翻译:

本文固定链接: http://www.webzsky.com/?p=579 | 蓝戒的博客

cywcd
该日志由 cywcd 于2015年07月27日发表在 css, xhtml+css, 网页兼容性 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: Normalize.css VS reset.css 重置浏览器默认样式 | 蓝戒的博客
关键字: ,

Normalize.css VS reset.css 重置浏览器默认样式:等您坐沙发呢!

发表评论


快捷键:Ctrl+Enter
来自的朋友,欢迎您 点击这里 订阅我的博客 o(∩_∩)o~~~
×