说起CSS2.0的样式,做兼容很多人所需要面临的问题,因为margin、padding等属性初始值随着不同内核的浏览器而不同,通常我们做样式兼容的浏览器主要分IE内核浏览器(包括IE,以及360浏览器、搜狗浏览器、TT浏览器等以IE为内核的浏览器)、非IE内核(如FireFox、Opera、Chrome等)。正因为浏览器的初始值的差异,所以在写CSS2.0代码的第一步就是全局重置样式,完美的兼容从全局重置开始。

这可以简单到仅仅将所有元素中的margin和padding属性去掉:
- html, body, div, h1, h2, h3, h4, h5, h6, ul, ol, dl, li, dt, dd, p, blockquote,
- pre, form, fieldset, table, th, td { margin: 0; padding: 0; }
目前应用比较普遍的全局重置样式有Eric Meyer和YUI的Resets两种样式是很棒的,另有Condensed Meyer Reset简化Eric Meyer的样式。有趣的是,Eric的重置样式也是源于YUI的。而那份简化版又把Eric的样式简化回YUI的样式了 。但同时,糟糕的是,网上流传的比较广的(尤其是国内)都不是最新的版本。本文上面两个链接的页面里直接看到的都不是最新的(Eric Meyer’s CSS Reset最新版本的请查看本文结尾处),Eric专门为有一个reset.css页面。
但对我来说,它们走的太远了。我想要你清除所有东西,然后再重新定义元素的许多属性。这就是Eric Meyer所推荐的。如果有更有效的方法是用它的话,你不应该只是拿来他的样式文件,将它直接放到自己的项目中——提炼它,在它的基础上重建,把它变成你自己的。
一个蛋疼的全局重置,在网上发现很多野鸡培训机构,培训样式竟然用这个做全局重置。
* { margin: 0; padding: 0; }
哦,请不要这样写重置,如果把一个单选框的padding去掉,你觉得会发生什么事情?这问题太多了,在此不多加表述,到时候做整站兼容,兼到你哭为止。
下面直接说一下早期Eric Meyer’s CSS Reset ,屡试不爽的全局重置样式。
- 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, font, img, ins, kbd, q, s, samp,
- small, strike, strong, sub, sup, tt, var,
- dl, dt, dd, ol, ul, li,
- fieldset, form, label, legend,
- table, caption, tbody, tfoot, thead, tr, th, td {
- margin: 0;
- padding: 0;
- border: 0;
- outline: 0;
- font-weight: inherit;
- font-style: inherit;
- font-size: 100%;
- font-family: inherit;
- vertical-align: baseline;
- }
- /* remember to define focus styles! */
- :focus {
- outline: 0;
- }
- body {
- line-height: 1;
- color: black;
- background: white;
- }
- ol, ul {
- list-style: none;
- }
- /* tables still need 'cellspacing="0"' in the markup */
- table {
- border-collapse: separate;
- border-spacing: 0;
- }
- caption, th, td {
- text-align: left;
- font-weight: normal;
- }
- blockquote:before, blockquote:after,
- q:before, q:after {
- content: "";
- }
- blockquote, q {
- quotes: "" "";
- }
原文:http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded
今年,Eric Meyer又思考了一下reset.css的问题,于是有所更新,具体为何要这样做,请看原文Reset Revisited。注意最开始的那句
NOTE: WORK IN PROGRESS
USE WITH CAUTION AND TEST WITH ABANDON
使用需谨慎!
- /* http://meyerweb.com/eric/tools/css/reset/
- v2.0b1 | 201101
- NOTE: WORK IN PROGRESS
- USE WITH CAUTION AND TEST WITH ABANDON */
- 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, figcaption, figure,
- footer, header, hgroup, menu, nav, section, summary,
- time, mark, audio, video {
- margin: 0;
- padding: 0;
- border: 0;
- outline: 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;
- }
- /* remember to define visible focus styles!
- :focus {
- outline: ?????;
- } */
- /* remember to highlight inserts somehow! */
- ins {
- text-decoration: none;
- }
- del {
- text-decoration: line-through;
- }
- table {
- border-collapse: collapse;
- border-spacing: 0;
- }
有关:Focus补充说明:
简单的这观点,这观点相当普遍。尽管我个人认为Eric Meyer将reset.css中的”:focus”移除的确是使页面更美观,但我想保留焦点的边框才是正道,因为有部分用户是使用键盘来点击链接的,而非鼠标。
有关:focus属性重置的问题,就看代码编写者取舍,为了让代码兼容Opera浏览器,代码编写上花了较长的时间。这是因为Opera浏览器中根本就没有类似:focus这样的不标签。不管怎么说,假如你希望你的链接看起来更简洁一点,你可以将text.css中的a:focus去掉,同时你要知道你的操作将会使你设计牺牲了网页的到达无障碍性。
原文:http://meyerweb.com/eric/thoughts/2011/01/03/reset-revisited/

![阿里巴巴离职DBA 35岁总结的职业生涯[转]](http://www.sky54.net/wp-content/uploads/image/2012/04/064850RvK.jpg)







不错哦,收藏了。