每一个浏览器在显示HTML元素的时候都不可避免的有一些不同的默认值。例如:IE浏览器和其它浏览器的默认body
元素的margin值有1个像素的差异。Firefox浏览器会在<h1>元素和页面的顶部之间留一些空白(如果<h1>元素是页面的第一个元素)。它遵从W3C的规定,但是IE浏览器则不然。
鉴于这些浏览器之间的差异,一些前端开发者编写了一些CSS Resets代码:设置一系列的样式规则,让所有浏览器都按照同样的规则解释CSS。
Eric Meyer的CSS Reset是众所周知的CSS重置代码,同样,雅虎的YUI reset也是非常好的CSS重置代码。许多CMS和框架,例如wordpress,在使用它们的thmems时都使用CSS reset。下面是Eric Meyer的CSS重置代码:
/* http://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126 License: none (public domain) */ html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } /* HTML5 display-role reset for older browsers */ article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; } body { line-height: 1; } ol, ul { list-style: none; } blockquote, q { quotes: none; } blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; } table { border-collapse: collapse; border-spacing: 0; }
下面是一个简洁版的CSS Reset代码,可以将它放置在CSS文件的开始处。
html { box-sizing: border-box; } *, *:before, *:after { box-sizing: inherit; } body, figure { margin: 0; }
上面的代码使得你在需要改写规则重置元素的尺寸大小时变得更加容易。
总之,让所有的浏览器在解释同一份CSS样式的时候都得到相同的结果是非常重要的。CSS Resets重置样式是每一个开发者在编写网站样式时必须编写的代码。