是否要重置CSS

是否要重置CSS

这篇文章探索我们在网站建设过程中,作为一个设计者或者开发者是否应该重置页面的CSS,分析一些网页设计过程中的若干想法和观点

 本文分为三个部分论述重置CSS的问题,第一部分讨论CSS的强大功能和历史,然后再讨论CSS重置样式的选项,最后讨论CSS的重置的用处。

  1.  CSS重置的历史
  2. CSS重置综合指南
  3. 我们应该重置CSS吗

 

CSS重置的历史问题

网页设计开发者和图书作者Morten Rand-Hendriksen 是CSS重置样式表的崇拜和追随者;他建议大家一定要在CSS样式表中使用重置。“如果你不重置你的样式表,那么不同的浏览器将使用它们对各个标签的默认值来显示,从而导致你的页面显示样式将随着不同的浏览器显示出不同的效果。”

在一次email的访谈中,大家耳熟能像的web开发设计者Chris-coyier在介绍CSS重置问题的时候,回答说,他只使用 *{margin:0;padding:0;}这一样式来重置CSS。

由于重置样式的方法限制,Coyier曾抱怨web开发者应该严格遵守通用的选择器。

首先,浏览器的默认样式例如form元素可能会打乱浏览器的显示样式的,除非你使用border:0的属性来加以限制。

另外一个使用通用选择器重置样式表的抱怨是使用不同的平台点击将引发问题。但是Coyier争论道,这是一个真实的技术问题,“几乎所有从这方面发生的问题几乎都是小毛病,我相信几乎没人会注意到这些。”

 

CSS重置指南

不支持使用CSS重置的观点

web开发者 Florent Verschelde提出了一个强烈的观点不支持CSS重置,并表示web开发者应该依靠好的样式表设计来实现兼容所有的浏览器,而且他还指出浏览器的默认样式值是良好和有用的。我们要感谢浏览器的默认CSS样式值,你的内容会因此而保持可读性,如果你脱离这  些问题,你就会可能使得你的内容不是那么健全的被保证显示。

Verschelde说,大多数的设计者和开发人员都相信浏览器的默认值会引擎很多问题甚至错误,随着你对CSS知识的了解,你会发现大多数的这些问题都是由于你CSS知识缺乏以及对margin等属性的理解不够透彻导致的,除了IE6-7里面的BUG

大多数的这些设置问题都出现在padding和margin上,例如body、lists和head字体等。如果你不喜欢这些默认的设定,而是喜欢使用精确的设置,那你就把这些属性重置为0,然后给予他们分别设置。

2008年的时候,著名的开发者Jens Meierts写,重置样式表是一种欠佳的行为:“一个专业的开发人员不应该使用这些”。因为重置样式表将使得你不得不在后面重新覆盖样式,这样做的结果就是降低了CSS的渲染效率。

在web开发者Jonathan Snook说道,如果不同的浏览器显示的风格样式差异很小的话,那最好不要使用CSS重置。

 

关于CSS的三个主要让人厌烦的地方

所有被重置为0的元素都需要在CSS中重新声明大小,这将使得CSS文件增大;

如果你不小心将CSS的重置移除了,那默认的元素可能会发生变化,而你这个时候却忘记重定义这个样式了;

一些重置的样式表对于那些使用键盘导航的用户来说坏处多多。

2010年的邮件访谈中,Weakley说他对于开发者和设计人员现在注意事项中包括决不能使用css样式重置的方式。他说CSS样式表重置应该以另外一种工具的形式提供给开发者。

 

通配符的问题

Dave Ward 注意到在使用通配符*的时候至少有三个问题

首先,不止margin和padding这两个属性需要被重置;

其次,统配选择符的样式重置会给表单造成十分严重的问题

第三,统配选择符会重置所有的元素样式,从而对页面的性能产生负面影响。

 

CSS重置剖析

有开发者强调,CSS重置的问题需要看是在什么情况下使用,视具体的情况而定。

比如你的项目中需要很多人配合,可是每个人的风格又不统一,这个时候适当的使用CSS重置是一种比较好的选择,当然CSS重置应当尽量遵循以下法则:保持精简的、压缩过的、位置位于最上。

但是当你的项目只有你一个人开发的时候,可以考虑不适用CSS重置,因为这将提高浏览器的渲染效率以及其他的类似于照顾键盘阅读者的习惯等问题。