在CSS中重置边距/填充时使用*是错误的吗?

时间:2009-02-18 20:35:49

标签: css performance

是否应该避开以下内容,或者因其简单性而受到称赞?

为了记录,我在我构建的每个站点中使用它,但我注意到它在许多主流CSS重置框架中不存在 - 是否有理由不使用它?

* { margin: 0; padding: 0; }

7 个答案:

答案 0 :(得分:3)

最好不要使用它,因为它会导致表单元素出现问题,尤其是输入按钮和选择框。

请参阅christianmontoya.com

答案 1 :(得分:2)

通用选择器可以减慢速度,特别是在某些WAP浏览器上。只需考虑一下:它匹配文档树中的每个元素。

此外,对于大多数元素,您将继续并指定与0不同的边距/填充。同样,重置所有元素都没有意义。

答案 2 :(得分:1)

你绝对不想做的事情是使用通用选择器的相对大小。如果你做的话,事情变得非常奇怪。 ; - )

要获得良好的基线,我建议您使用经过验证的reset stylesheet

答案 3 :(得分:1)

我曾经在* {margin:0; padding:0},Eric Meyer的重置,YUI重置以及根本没有CSS之间进行了一些性能测试。性能差异可以忽略不计。

那就是说,我现在使用Eric Meyer的重置,所以我不会丢失输入按钮上的格式,这实际上使按钮更容易跨浏览器设置样式。

答案 4 :(得分:0)

如果您的目的是设置每个元素的填充和边距,那么该选择器应该没有问题。

答案 5 :(得分:0)

它没有什么特别的错误。 *被称为“通用选择器”,浏览器对它的支持通常被认为是好的,尽管IE确实有一些模糊的错误,如常:WB http://reference.sitepoint.com/css/universalselector#compatibilitysection

答案 6 :(得分:0)

我认为这是构建CSS布局的重要第一步。它消除了许多不同浏览器的麻烦的默认样式,并允许我获得更多与浏览器无关的结果。

当然,我将它与IE的条件注释结合起来,在我的整个页面上编写特定于IE版本的div,并使用它们来处理IE的错误(因为FF et.al。往往对CSS规范更准确)。

编辑 - 我从未发现任何性能问题。