【问题标题】:Is there any reason for including the tag name with a class or ID selector in CSS?是否有任何理由在 CSS 中包含带有类或 ID 选择器的标签名称?
【发布时间】:2011-05-04 14:12:08
【问题描述】:

我想知道div.class.class 作为CSS 选择器是否有任何区别,如果只有一个标签(DIV)具有该属性。 ID 也一样:div#ID#ID

知道有什么区别吗?对我来说,我在这些情况下使用类或 ID;但只是因为它打字更快。

【问题讨论】:

    标签: html css css-selectors


    【解决方案1】:

    在特异性上只有非常微小的差异。

    p#id is (0,1,0,1)
    

    #id is (0,1,0,0)
    

    换句话说,与 ID 相比,标签本身并没有太多的特异性,根据我的经验,几乎不需要依靠这种微小的特异性来推翻事物。

    更重要的是,NOT 标记限定选择器对于浏览器的渲染效率更高。

    【解决方案2】:

    通常,一旦大部分 CSS 已经完成,那些较长的选择器就会派上用场。有时你想在这里和那里调整一些小东西——比如说——区分p.errordiv.error。因此,您无需添加另一个类(因此必须接触 HTML),而是只需将元素名称添加到您的选择器,以获得更细粒度的控制。

    【讨论】:

      【解决方案3】:
      1. 它们更具体,因此如果它们发生冲突,长版本将覆盖短版本。 div.foo 的特异性为 11,而 .foo 的特异性为 10。
      2. 由于它们更具体,您可以确切地知道该类适用于哪个节点名,而不是作为所有节点名的通用规则,如果您有一个庞大的应用程序,其中包含大量具有相同类名的元素,这会有所帮助,它可以减少您在源/文本编辑器中查找元素的时间。

      【讨论】:

        【解决方案4】:

        如您所做的那样,只使用一个类或 id,这意味着如果将 HTML 标记更改为不同的标记,您的 CSS 仍将适用。

        大多数时候,这可能正是您想要的——类允许您在 HTML 之上添加自定义的含义层。

        一般来说,您的选择器应该是表达您的意思所需的最低要求。

        【讨论】:

          【解决方案5】:

          不,如果您只有特定类或 ID 的 DIV 标记,则没有区别。

          【讨论】:

            猜你喜欢
            • 2011-07-06
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-10-08
            • 2016-07-21
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多