【发布时间】:2015-12-16 03:16:44
【问题描述】:
应该回避以下内容,还是应该称赞它的简单性?
作为记录,我在我构建的每个网站中都使用它,但我注意到它在许多主流 CSS 重置框架中不存在 - 他们是否也有理由不使用它?
* { margin: 0; padding: 0; }
【问题讨论】:
-
好问题!我自己也想过这个问题。
标签: css performance
应该回避以下内容,还是应该称赞它的简单性?
作为记录,我在我构建的每个网站中都使用它,但我注意到它在许多主流 CSS 重置框架中不存在 - 他们是否也有理由不使用它?
* { margin: 0; padding: 0; }
【问题讨论】:
标签: css performance
最好不要使用它,因为它会导致表单元素出现问题,尤其是输入按钮和选择框。
【讨论】:
通用选择器可能会减慢速度,尤其是在某些 WAP 浏览器上。想一想:它匹配文档树中的每一个元素。
此外,对于大多数元素,您将继续指定与 0 不同的边距/填充。就像这样,为所有元素重新设置它们是没有意义的。
【讨论】:
您绝对不想做的事情是在通用选择器中使用相对大小。如果你这样做,事情会很快变得奇怪。 ;-)
为了获得良好的工作基准,我建议使用久经考验的reset stylesheet。
【讨论】:
我曾经在 * {margin:0;padding:0}、Eric Meyer 的重置、YUI 重置和完全没有 CSS 之间进行了一些性能测试。性能差异可以忽略不计。
也就是说,我现在使用 Eric Meyer 的重置,这样我就不会丢失输入按钮的格式,这实际上使按钮更容易跨浏览器设置样式。
【讨论】:
如果您的意图是设置每个元素的内边距和边距,那么该选择器应该没有问题。
【讨论】:
没有什么特别的问题。 * 被称为“通用选择器”,浏览器对它的支持通常被认为是好的,尽管 IE 确实有一些不明显的错误,像往常一样:
http://reference.sitepoint.com/css/universalselector#compatibilitysection
【讨论】:
我认为这是构建 CSS 布局的重要第一步。它消除了不同浏览器的许多麻烦的默认样式,并允许我获得更多独立于浏览器的结果。
当然,我将它与 IE 的条件 cmets 结合起来,围绕我的整个页面编写特定于 IE 版本的 div,并使用它们来处理 IE 的错误(因为 FF 等人往往更准确于 CSS 规范)。
编辑 - 我从未注意到它有任何性能问题。
【讨论】: