【问题标题】:!imporant equivalent for HTML class tag?!HTML 类标签的重要等价物?
【发布时间】:2012-12-05 17:04:39
【问题描述】:

我正在处理一个网站的真实哈希,所以这就是我问这个荒谬问题的原因。

我到处寻找某种方法让一个类覆盖 HTML 类标记中的另一个类,但无济于事。

我可以这样做,尝试解开一大堆意大利面(反正我可能不会被允许这样做),或者其他人可以推荐的东西(将不胜感激)。

这可能吗?

class="myClass !important"

如果没有,是否有某种等价物?

请帮忙!非常感谢!

【问题讨论】:

  • 不,据我所知不可能。
  • 顺便说一句,CSS 类定义既不是 HTML 也不是标签。
  • !important 仅用于属性/值对;你会在你的特定类的规则中使用它。

标签: html css class tags


【解决方案1】:

不,这是不可能的。恐怕你必须自己解决CSS Specificity

【讨论】:

  • 这在很大程度上,尽管最好记住 HTML 元素中列出的最后一个类将在特异性相等时覆盖其余类(即 - 如果你有元素对于 class="foo bar baz" 和 CSS .foo{} .bar{} .baz{}.bar 的样式将赢得与 .foo 的冲突,.baz 将赢得与它们中的任何一个的任何冲突)。这个花絮可能会省去一些麻烦,这取决于 CSS 的复杂程度。
【解决方案2】:

如果您有能力更改 HTML 模板,您可以随时进入并将 <div id="override"> 或类似的东西添加到页面的最外层包装器中,以用作 CSS 类中的“主”规则。然后,在 CSS 中,您只需在任何现有类或您需要修改的类之前添加该 ID。

例如,如果您有以下内容并想要覆盖 .some-class:

<div class="some-class">Bleh.</div>

以及对应的CSS:

.some-class { color: red; }

你可以用:

<div id="override">
    <div class="some-class">Bleh.</div>
</div>

并在 .some-class 之前添加#override(或任何您想命名的名称),此规则将优先于另一个:

#override .some-class { color: green; } /* This will override the red color form the other rule */
.some-class { color: red; }

【讨论】:

  • 这更像是我在目前情况下能够做到的。谢谢!将测试 n 投票并检查何时可以。
【解决方案3】:

您不能将!important 用于整个选择器。您需要找到要覆盖的特定规则,并在每个规则上使用 !important

【讨论】:

    【解决方案4】:

    您可以向选择器添加多个类,如下所示:

    class="myClass myClass2"
    

    上面是你的 HTML 元素中 class 属性的样子。

    就 CSS 而言,定义类如下:

    .myClass {
        color: black;
        font-size: 14px;
    }
    

    以上只是您可能拥有的一些属性的示例。

    在样式表中的“myClass”之后定义“myClass2”将允许“myClass2”中的属性覆盖“myClass”中的匹配属性:

    //This goes below myClass
    .myClass2 {
        font-size: 16px;
    }
    

    只要“myClass2”在“myClass”之后,你的字体就会采用'16px;'的大小属性“myClass”的值将被“myClass2”的值覆盖。如果 "myClass2" 出现在 "myClass" 之前,您可以使用 !important 来确保样式会取代后面定义的样式:

    //This goes above myClass
    .myClass2 {
        font-size: 16px !important;
    }
    

    希望这会有所帮助。

    【讨论】:

      【解决方案5】:

      CSS 类只是一组样式,因此您可以使用class 代替内联style 标签。 !important 关键字可帮助您覆盖特定样式而不是处理类。 所以,例如:

      假设我们在 CSS 文件的某个位置对每个 div 都有一个 CSS 规则

      div{border:solid 1px #ff0000;}
      

      后来我们有了这条规则:

      div{background:#000000;}
      

      我们页面中的每个div 都将带有border 和一个background,如果我们想要覆盖div css 规则,我们需要这样做:

      div{background:none !important;border:none !important;/*...ADD YOUR CSS...*/}
      

      您可以创建一个 css 重置类来重置您想要的所有设置,然后添加您的 css

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-16
        • 2012-06-15
        • 1970-01-01
        • 2012-01-09
        • 2011-10-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多