2008.11 16

10款浏览器CSS Reset的方法

知道CSS Reset是什么吗?通常情况下,它也被写成Reset CSS,即重设浏览器的样式。在各种浏览器中,都会对CSS的选择器默认一些数值,譬如当h1没有被设置数值时,显示一定大小。但并不是所有的浏览器都使用一样的数值,所以,有了CSS Reset,以让网页的样式在各浏览器中表现一致。

正在使用CSS的你,用过CSS Reset吗?当然,或许你用了,却不知道正在用,比如你可能用到:

* { padding: 0; margin: 0; border: 0; }

这也是一款CSS Reset的方法,让所有的选择器的padding、margin和border都设置成0。这是一种强大的方法,也是最简单,最安全的方法,不过,也是最占用资源的方法。对于小型的网站来说,用这个并不会带来大的资源浪费,但如果是像Yahoo这种架构非常大的网站,刚需要有选择地进行CSS重设,以减少资源浪费。下面是Yahoo的CSS重设代码,也是受最多人喜爱的CSS Reset方法,YUI选择的方法是:

body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,
form,fieldset,input,textarea,p,blockquote,th,td {
padding: 0;
margin: 0;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
fieldset,img {
border: 0;
}
address,caption,cite,code,dfn,em,strong,th,var {
font-weight: normal;
font-style: normal;
}
ol,ul {
list-style: none;
}
caption,th {
text-align: left;
}
h1,h2,h3,h4,h5,h6 {
font-weight: normal;
font-size: 100%;
}
q:before,q:after {
content:'';
}
abbr,acronym { border: 0;
}

OK,相信你也已经了解了CSS重设的目的,或许你也可以根据自己的喜好,写一个自己的CSS重设系统,毕竟大家的需求和习惯的不同的。而你可以参照下面的几款:

Ateneu Popular 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;
}
:focus { outline: 0;}
a, a:link, a:visited, a:hover, a:active{text-decoration:none}
table { border-collapse: separate;border-spacing: 0;}
th, td {text-align: left; font-weight: normal;}
img, iframe {border: none; text-decoration:none;}
ol, ul {list-style: none;}
input, textarea, select, button {font-size: 100%;font-family: inherit;}
select {margin: inherit;}
hr {margin: 0;padding: 0;border: 0;color: #000;background-color: #000;height: 1px}

Chris Poteet’s Reset CSS

* {
vertical-align: baseline;
font-family: inherit;
font-style: inherit;
font-size: 100%;
border: none;
padding: 0;
margin: 0;
}
body {
padding: 5px;
}
h1, h2, h3, h4, h5, h6, p, pre, blockquote, form, ul, ol, dl {
margin: 20px 0;
}
li, dd, blockquote {
margin-left: 40px;
}
table {
border-collapse: collapse;
border-spacing: 0;
}

Eric Meyer Reset CSS

html, body, div, span, applet, object, iframe, table, caption,
tbody, tfoot, thead, tr, th, td, del, dfn, em, font, img, ins,
kbd, q, s, samp, small, strike, strong, sub, sup, tt, var,
h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr,
acronym, address, big, cite, code, dl, dt, dd, ol, ul, li,
fieldset, form, label, legend {
vertical-align: baseline;
font-family: inherit;
font-weight: inherit;
font-style: inherit;
font-size: 100%;
outline: 0;
padding: 0;
margin: 0;
border: 0;
}
:focus {
outline: 0;
}
body {
background: white;
line-height: 1;
color: black;
}
ol, ul {
list-style: none;
}
table {
border-collapse: separate;
border-spacing: 0;
}
caption, th, td {
font-weight: normal;
text-align: left;
}
blockquote:before, blockquote:after, q:before, q:after {
content: "";
}
blockquote, q {
quotes: "" "";
}

Tantek Celik Reset CSS

:link,:visited { text-decoration:none }
ul,ol { list-style:none }
h1,h2,h3,h4,h5,h6,pre,code { font-size:1em; }
ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,body,html,p,blockquote,fieldset,input
{ margin:0; padding:0 }
a img,:link img,:visited img { border:none }
address { font-style:normal }

Christian Montoya Reset CSS

html, body, form, fieldset {
margin: 0;
padding: 0;
font: 100%/120% Verdana, Arial, Helvetica, sans-serif;
}
h1, h2, h3, h4, h5, h6, p, pre,
blockquote, ul, ol, dl, address {
margin: 1em 0;
padding: 0;
}
li, dd, blockquote {
margin-left: 1em;
}
form label {
cursor: pointer;
}
fieldset {
border: none;
}
input, select, textarea {
font-size: 100%;
font-family: inherit;
}

Rudeworks Reset CSS

* {
margin: 0;
padding: 0;
border: none;
}
html {
font: 62.5% "Lucida Grande", Lucida, Verdana, sans-serif;
text-shadow: #000 0px 0px 0px;
}
ul {
list-style: none;
list-style-type: none;
}
h1, h2, h3, h4, h5, h6, p, pre,
blockquote, ul, ol, dl, address {
font-weight: normal;
margin: 0 0 1em 0;
}
cite, em, dfn {
font-style: italic;
}
sup {
position: relative;
bottom: 0.3em;
vertical-align: baseline;
}
sub {
position: relative;
bottom: -0.2em;
vertical-align: baseline;
}
li, dd, blockquote {
margin-left: 1em;
}
code, kbd, samp, pre, tt, var, input[type='text'], textarea {
font-size: 100%;
font-family: monaco, "Lucida Console", courier, mono-space;
}
del {
text-decoration: line-through;
}
ins, dfn {
border-bottom: 1px solid #ccc;
}
small, sup, sub {
font-size: 85%;
}
abbr, acronym {
text-transform: uppercase;
font-size: 85%;
letter-spacing: .1em;
border-bottom-style: dotted;
border-bottom-width: 1px;
}
a abbr, a acronym {
border: none;
}
sup {
vertical-align: super;
}
sub {
vertical-align: sub;
}
h1 {
font-size: 2em;
}
h2 {
font-size: 1.8em;
}
h3 {
font-size: 1.6em;
}
h4 {
font-size: 1.4em;
}
h5 {
font-size: 1.2em;
}
h6 {
font-size: 1em;
}
a, a:link, a:visited, a:hover, a:active {
outline: 0;
text-decoration: none;
}
a img {
border: none;
text-decoration: none;
}
img {
border: none;
text-decoration: none;
}
label, button {
cursor: pointer;
}
input:focus, select:focus, textarea:focus {
background-color: #FFF;
}
fieldset {
border: none;
}
.clear {
clear: both;
}
.float-left {
float: left;
}
.float-right {
float: right;
}
body {
text-align: center;
}
#wrapper {
margin: 0 auto;
text-align: left;
}

Anieto2K Reset CSS

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,
center, u, b, i {
margin: 0;
padding: 0;
border: 0;
outline: 0;
font-weight: normal;
font-style: normal;
font-size: 100%;
font-family: inherit;
vertical-align: baseline
}
body {
line-height: 1
}
:focus {
outline: 0
}
ol, ul {
list-style: none
}
table {
border-collapse: collapse;
border-spacing: 0
}
blockquote:before, blockquote:after, q:before, q:after {
content: ""
}
blockquote, q {
quotes: "" ""
}
input, textarea {
margin: 0;
padding: 0
}
hr {
margin: 0;
padding: 0;
border: 0;
color: #000;
background-color: #000;
height: 1px
}

CSSLab 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;
}
:focus {
outline: 0;
}
table {
border-collapse: separate;
border-spacing: 0;
}
caption, th, td {
text-align: left;
font-weight: normal;
}
a img, iframe {
border: none;
}
ol, ul {
list-style: none;
}
input, textarea, select, button {
font-size: 100%;
font-family: inherit;
}
select {
margin: inherit;
}
/* Fixes incorrect placement of numbers in ol's in IE6/7 */
ol { margin-left:2em; }
/* == clearfix == */
.clearfix:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
.clearfix {display: inline-block;}
* html .clearfix {height: 1%;}
.clearfix {display: block;}

像你看到的,这些都大同小异,需求不同,方法也就不同。我自己偏向于喜欢Yahoo的CSS Reset,也用了Yahoo的代码。你,有自己的CSS Reset体系吗?或许可以分享出来!

CSS Reset 代码来源:10 Técnicas para Reset CSS

22

  1. 2008.11.16 10:53 pm
    我是sofish的粉丝(visit): [回复]

    好文,收藏至del.icio.us

    其实我更想说的是,哇哈哈,沙发。

  2. 2008.11.16 10:54 pm
    leehow(visit): [回复]

    好长…你产量很高啊。

  3. 2008.11.17 12:04 am
    雀巢(visit): [回复]

    你们的速度真快

  4. 2008.11.17 12:05 am
    老所(visit): [回复]

    不明白,为什么*就消耗很大呢?

  5. 2008.11.17 12:29 am
    sofish(visit): [回复]

    @我是sofish的粉丝: 经典,总会有人说,好文,推荐到xxx…

    顺便恭喜一下,成为这篇文章的沙发。

    @leehow: 无聊的时候就会想更新…你倒是,更新啊,小朋友。

    @雀巢: 你的博客MS有点…问题…宕机?

    @老所: 因为这样就会为所有的选择器都统统重设一遍,如果有选择的话,就不用每个都重设。如果举个例子就是,如果你有十张纸,你把十张纸都事先写涂成黑的,但在个性化的时候并不是所有纸都要涂黑色,有的可能会是绿,你又要重新涂上一层,或者擦掉,再涂。

  6. 2008.11.17 12:31 am
    Shawn(visit): [回复]

    @老所:因为对css来说,你写的越详细,浏览器的解释时间就越短。你写的越简略,浏览器耗费的解释时间就越长。不过对 blog 来说,你不用考虑这些,本来整体代码量就小。

  7. 2008.11.17 12:32 am
    Shawn(visit): [回复]

    @sofish:今天这事儿被我碰上了。

  8. 2008.11.17 12:33 am
    sofish(visit): [回复]

    @Shawn: 这个是另外一层了吧?因为a.link这样的解析速度会比a快。当然,快的时间甚微,对于博客来说,基本上不用考虑。

  9. 2008.11.17 12:36 am
    Shawn(visit): [回复]

    @sofish:老所就是问的为什么*号的消耗大。然后文章中解释的又不清楚,还有错别字,还有语病。。。

  10. 2008.11.17 9:02 am
    IZUREN(visit): [回复]

    原来如此

  11. 2008.11.17 1:47 pm
    老时(visit): [回复]

    学这么多技术干嘛呢。唉。

  12. 2008.11.17 6:41 pm
    Charles(visit): [回复]

    我使用YUI CSS Framwork的,Reset,Grid和Base我都用了。

  13. 2008.11.18 8:53 am
    bssn(visit): [回复]

    原来它叫 css reset 啊。

  14. 2008.11.18 10:25 pm
    花果山寨(visit): [回复]

    我很努力的看,但还是看不太懂!惭愧

  15. 2008.11.19 12:24 am
    二手科学家(visit): [回复]

    花果山猴王,俺也看不懂,需要继续努力哈

  16. 2008.11.20 3:47 pm
    Yacca(visit): [回复]

    @我是sofish的粉丝:你到哪就是谁的fans,我发现了 哈哈!!!

  17. 2008.11.21 8:03 pm
    优酷(visit): [回复]

    以前都用*,不过小网站也没啥了,呵呵!!!现在要学习你制定标签的方法,可能这个方法已经指定了标签,而用*要遍历所有标签,所以*比较耗资源吧

  18. 2008.12.07 9:30 pm
    nooidea(visit): [回复]

    唉 你要说html我还明白些

  19. 2008.12.21 2:25 pm
    shanhe(visit): [回复]

    @老所:用*的话 浏览器需要遍历所有html元素 这个过程相对于来说比较费时…特别是对ie来说

  20. 2009.01.15 9:40 pm
    半个书生(visit): [回复]

    学习了啊!
    多来看看,学习学习!

  21. 2009.01.31 12:48 pm
    full(visit): [回复]

    不错哦!不过像我做小网站用星号够啦,还是收藏了! 谢谢

  22. 2009.02.25 5:34 pm
    shally(visit): [回复]

    body{ font:normal normal 12px/120% Arial, Helvetica, sans-serif; color:#101919;
    background:#BDB3A1; padding:0; margin:0 auto;}

    h1,h2,h3,h4,h5,h6{ font-size:100%; font-weight:normal;}
    h2{ font-size:16px; line-height:27px;}

    a{ color:#101919; text-decoration:none;}
    a:hover,p a{ text-decoration:underline;}

    p{ color:#562B1F; line-height:160%;}

    img{ border:none; display:block;}

    ul,li{ list-style:none; display:block;}
    li{ float:left;}

    h1{ margin:0 -9999px 0 0;}
    *{ padding:0; margin:0;}

    我自己写的大概就这些了··

Additional comments powered by BackType