CSS全局样式中需要注意的细节
在网上看到篇文章讲全球很多高手的CSS全局样式(reset.css),再一次体会到了什么叫“细节决定成败”。原文:http://perishablepress.com/press/2007/10/23/a-killer-collection-of-global-css-reset-styles/。 原文是借着翻译插件看下来的,大概意思就是讲什么是Css,以及各浏览器的css规则的不同,而制定"Css Reset"也是为了兼容与统一,正确有效的使用"Css Reset"可以在某种程度上节约时间与金钱。我的理解是:CSS reset的意义,不是让你全部去掉,而是让各种浏览器尽量起点一样。
牛顿是站在巨人伽利略的肩膀上的,我们也可以这么做。通过高手们的经 验,下面两个细节需要注意。你可以检查一下你设计网站或者博客的全局CSS。
不建议用:*{margin:0;padding:0;}
不建议用:* {margin:0;padding:0;}的原因:
- *这个感觉不是很好,肯定会影响效率的,尽管不能被肉眼察觉
- 性能的消耗是其中一个因素,个人认为会带来的最大弊端还是对表单元素的影响。比如checkbox、radio、button之类的标 签,被定义后在浏览器上的显示很别扭,需要针对性重写代码,消耗的是更多的代码量和代码时间。
但是针对一些简单得页面,标签元 素单一且简单得话,就可以大胆地使用。
建 议使用:img {border:0 none;}
原因是为了兼容,因为border边框属性在不同浏览器中的渲染方式不同。
比 如FF和IE中,仅仅使用img {border:0;}的话,那么在两个浏览器中border-width都是为0的,但是border-style和border-color两个属性 会存在差异。
具体分析结果可以查看:http://blog.linxz.cn/border/
reset.css样本
那些没有提到 的标签如何全局定义就要看具体情况了,比如你的项目中没有使用的标签,你何必全局定义呢?
下面的reset.css大部分复制至:YUI。
提 醒:不能尽信高手。没有最完美的,只有最合适的。
body, div, dl, dt, dd, ul, ol, li,
h1, h2, h3, h4, h5, h6, pre, code,
form, fieldset, legend, input, button,
textarea, p, blockquote, th, td {
margin: 0;
padding: 0;
}
fieldset, img {
border: 0 none;
}
/* remember to define focus styles! */
:focus {
outline: 0;
}
address, caption, cite, code, dfn,
em, strong, th, var, optgroup {
font-style: normal;
font-weight: normal;
}
h1, h2, h3, h4, h5, h6 {
font-size: 100%;
font-weight: normal;
}
abbr, acronym {
border: 0;
font-variant: normal;
}
input, button, textarea,
select, optgroup, option {
font-family: inherit;
font-size: inherit;
font-style: inherit;
font-weight: inherit;
}
code, kbd, samp, tt {
font-size: 100%;
}
/*@purpose To enable resizing for IE */
/*@branch For IE6-Win, IE7-Win */
input, button, textarea, select {
*font-size: 100%;
}
body {
line-height: 1.5;
}
ol, ul {
list-style: none;
}
/* tables still need 'cellspacing="0"' in the markup */
table {
border-collapse: collapse;
border-spacing: 0;
}
caption, th {
text-align: left;
}
sup, sub {
font-size: 100%;
vertical-align: baseline;
}
/* remember to highlight anchors and inserts somehow! */
:link, :visited , ins {
text-decoration: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}