【问题标题】:Is it wrong to use * when reseting Margins/Padding in CSS?在 CSS 中重置 Margins/Padding 时使用 * 是否错误?
【发布时间】:2015-12-16 03:16:44
【问题描述】:

应该回避以下内容,还是应该称赞它的简单性?

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

* { margin: 0; padding: 0; }

【问题讨论】:

  • 好问题!我自己也想过这个问题。

标签: css performance


【解决方案1】:

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

christianmontoya.com

【讨论】:

    【解决方案2】:

    通用选择器可能会减慢速度,尤其是在某些 WAP 浏览器上。想一想:它匹配文档树中的每一个元素。

    此外,对于大多数元素,您将继续指定与 0 不同的边距/填充。就像这样,为所有元素重新设置它们是没有意义的。

    【讨论】:

    • 您有这方面的任何文件吗?我使用它时从未注意到任何性能问题。
    • @Jeff:这是众所周知的——你可以看看 firebug 中的效果,看看应用了多少个继承。 * 被认为是不安全的。
    【解决方案3】:

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

    为了获得良好的工作基准,我建议使用久经考验的reset stylesheet

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

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

          【讨论】:

            【解决方案7】:

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

            当然,我将它与 IE 的条件 cmets 结合起来,围绕我的整个页面编写特定于 IE 版本的 div,并使用它们来处理 IE 的错误(因为 FF 等人往往更准确于 CSS 规范)。

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

            【讨论】:

            • +1:我在我编写的每一个样式表中都使用它作为强制性的第一行(是的,压缩到一行)。它使以后在 IMO 上的一切变得更加容易。
            猜你喜欢
            • 2018-07-26
            • 1970-01-01
            • 2014-04-04
            • 2015-11-20
            • 2012-03-18
            • 2020-02-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多