Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在CSS中重置边距/填充时使用*是否错误?_Css_Performance - Fatal编程技术网

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

在CSS中重置边距/填充时使用*是否错误?,css,performance,Css,Performance,以下是应该避免的,还是应该因为它的简单而受到赞扬 作为记录,我在我构建的每个站点中都使用它,但我注意到它在许多主流CSS重置框架中并不存在——他们不使用它有什么原因吗 *{margin:0;padding:0;} 如果您的目的是设置每个元素的填充和边距,那么该选择器应该没有问题。它没有什么特别的问题。*被称为“通用选择器”,浏览器支持它通常被认为是好的,虽然IE确实有一些模糊的bug,像通常一样: < P>我认为这是构建CSS布局的重要第一步。它消除了许多麻烦的不同浏览器的默认样式,并允许我获得

以下是应该避免的,还是应该因为它的简单而受到赞扬

作为记录,我在我构建的每个站点中都使用它,但我注意到它在许多主流CSS重置框架中并不存在——他们不使用它有什么原因吗

*{margin:0;padding:0;}

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

它没有什么特别的问题。*被称为“通用选择器”,浏览器支持它通常被认为是好的,虽然IE确实有一些模糊的bug,像通常一样:

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

当然,我将其与IE的条件注释结合起来,在整个页面上编写IE版本特定的div,并使用这些div处理IE的bug(正如FF等人倾向于更准确地处理CSS规范)


编辑-我从未注意到它有任何性能问题。

通用选择器可以大大降低速度,尤其是在某些WAP浏览器上。请考虑一下:它匹配文档树中的每个元素


此外,对于大多数元素,您将继续并指定与0不同的边距/填充。与中一样,在所有元素开始时重置它们是没有意义的。

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


请参见

您肯定不想做的事情是在通用选择器中使用相对大小。如果你这么做,事情会很快变得奇怪


对于一个好的基线,我建议使用一个经过测试的方法。

我曾经在*{margin:0;padding:0}、Eric Meyer重置、YUI重置和完全没有CSS之间做过一些性能测试。性能差异可以忽略不计


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

+1:在我编写的每一个样式表中,我都将此作为强制性的第一行(是的,压缩为一行)。这使得以后在IMO上一切都变得容易多了。你有关于这方面的文档吗?当我使用它时,我从来没有注意到任何性能问题。@杰夫:这是众所周知的-你可以看看firebug中的效果,看看应用了多少继承。*被认为是不安全的。这是一张图表:好问题!我自己也在想这件事。