本文译自Normalize.css官网: http://nicolasgallagher.com/a...

Normalize.css 只是一个很小的CSS文件,但它在默认的HTML元素样式上提供了跨浏览器的高度一致性。相比于传统的CSS reset,Normalize.css是一种现代的、为HTML5准备的优质替代方案。Normalize.css现在已经被用于Twitter Bootstrap、HTML5 Boilerplate、GOV.UK、Rdio、CSS Tricks 以及许许多多其他框架、工具和网站上。

Normalize.css 项目地址
Normalize.css 在GitHub上的源码

综述

Normalize.css是一种CSS reset的替代方案。经过@necolas和@jon_neal花了几百个小时来努力研究不同浏览器的默认样式的差异,这个项目终于变成了现在这样。

我们创造normalize.css有下面这几个目的:

  1. 保护有用的浏览器默认样式而不是完全去掉它们
  2. 一般化的样式:为大部分HTML元素提供
  3. 修复浏览器自身的bug并保证各浏览器的一致性
  4. 优化CSS可用性:用一些小技巧
  5. 解释代码:用注释和详细的文档来

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

Normalize vs Reset

知道Normalize.css和传统Reset的区别是非常有价值的。

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

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

可以看以下这个例子,看看对于HTML5中新出现的input类型search,Normalize.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;
}

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

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

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

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

如何使用 normalize.css

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

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

结语

无论从适用范畴还是实施上,Normalize.css与Reset都有极大的不同。尝试一下这两种方法并看看到底哪种更适合你的开发偏好是非常值得的。这个项目在Github上以开源的形式开发。任何人都能够提交问题报告或者提交补丁。整个项目发展的过程对所有人都是可见的,而每一次改动的原因也都写在commit信息中,这些都是有迹可循的。

转载地址:http://jerryzou.com/posts/abo...

CSS进阶篇--Normalize.css的使用(重置表)相关推荐

  1. 【前端学习之HTMLCSS进阶篇】-- CSS第一篇 -- @规则与web字体图标

    [前端学习之HTML&CSS进阶篇]- CSS第一篇 - @规则与web字体图标 文章目录 [前端学习之HTML&CSS进阶篇]- CSS第一篇 - @规则与web字体图标 前言 一. ...

  2. css就近原则_「Web前端开发进阶篇」CSS优先级

    所谓CSS优先级,即是指CSS样式在浏览器中被解析的先后顺序.既然样式有优先级,那么就会有一个规则来约定这个优先级,而这个"规则"就是重点. [引言] 讲解完这篇CSS优先级的文章 ...

  3. html网页改兼容模型,浏览器兼容、CSS hack、normalize.css及盒模型基础知识问答

    一.问题(一).如何调试 IE 浏览器 1.对于IE7及以下版本可采用IETester(不能测脚本,模拟出来的IE6平台与真实的IE6还是有差异的,结果不完全可靠).Expression Web Su ...

  4. normalize.css 类似,使用normalize.css遇到的问题?

    为什么要清除呢? 如果你做了一个cms系统,或者博客系统,论坛系统,当用户在富文本编辑器里面输入列表时,看到的也是有缩进的,结果点击提交后,再一看效果,肯定得抓狂. 所以,normalize.css ...

  5. CSS进阶篇——展示 (display)

    HTML 元素最常用的展示方式有内联(inline).区块(block)和不展示(none).它们可以通过 display 属性来控制,对应的值分别为 inline.block 和 none. 内联 ...

  6. 【CSS进阶】使用CSS gradient制作绚丽渐变纹理背景效果

    前言 一直对渐变背景这块比较感兴趣,但是因为每天加班实在太忙了,任务也比较多.所以就只能下班的时间研究渐变背景这方面的知识,一来满足了自己的好奇心,二来可以更加了解这方面的知识.跟更多不断学习的小伙伴 ...

  7. 【CSS应用篇】——CSS如何实现圆角边框

    目录 问题引入: 如何实现元素的圆角样式: 使用圆角属性细节: 格式: 实操演示: 案例: 一,实现正圆: 二,实现胶囊按钮 问题引入: 我们在学完盒子模型之后,创建的盒子总是方方正正的,然而在实际应 ...

  8. 2. web前端开发分享-css,js进阶篇

    一,css进阶篇: 等css哪些事儿看了两三遍之后,需要对看过的知识综合应用,这时候需要大量的实践经验, 简单的想法:把qq首页全屏另存为jpg然后通过ps工具切图结合css转换成html,有无从下手 ...

  9. vue或者react的css样式初始(css样式重置)——reset.css与normalize.css

    前言 为什么要样式重置即 css reset ? 原因:不同的浏览器在实现w3c标准过程中,对各个元素的实现是不一致的.这就导致了同一个页面在不同的浏览器中比如ie和chrome中,表现有差异.为了解 ...

最新文章

  1. 如何优雅的导出 Excel
  2. 中国地理区域IP库整理
  3. 12行代码AC——L1-058 6翻了(15分)
  4. centos6.5搭建流媒体服务器
  5. makeinfo:未找到命令
  6. HFSS喇叭天线仿真
  7. CAD图纸转换成高质量的彩色PDF格式如何操作?
  8. [电动智能汽车-7]:汽车CAN总线详解
  9. 程序员的奋斗史(三十六)——人在囧途之应聘篇(六)——第一季终结篇
  10. wifidog 配置中文说明
  11. 大量冷笑话 (冬天别看哦~)
  12. 暗黑破坏神(DIABLOII 1.11B)BOT下载
  13. 蓝桥杯训练题1427: [蓝桥杯][2013年第四届真题]买不到的数目【筛选符合题目的数字。有点类似筛素数】
  14. 为什么卷积层不加bias
  15. 【日常分享】多邻国v4.93.4,在线学习英语、日语、韩语、德语…等30多种语言
  16. podman加速配置、harbor镜像仓库部署
  17. 计算机显示器文字不清楚,笔记本电脑字体显示不清晰解决方法分辨率和显卡驱动...
  18. 使用JDBC操作数据库(入门介绍)
  19. CAD电气工程图教程之布局方法和设计规则
  20. LTE-TDD HARQ(1)-上行HARQ时序

热门文章

  1. 电脑回收站清空的文件怎么恢复?
  2. 历届试题 包子凑数 C语言,蓝桥杯 试题 历届试题 包子凑数 dp+欧几里得算法
  3. js input 限制输入的各种方法
  4. OM和OA的区别及其功能概括
  5. Facebook 低调开发 AI 技术工具:自动扫描代码找漏洞
  6. 2021~2022 学年第二学期《信息安全》考试试题(A 卷)
  7. 2022-2028全球与中国卫浴五金制品市场现状及未来发展趋势
  8. 中国五金门控发展情况 (zz)
  9. 性能测试之常见性能缺陷
  10. 腾讯二次创业:ToB背后的云起十年|钛媒体深度