0

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

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

我可以这样做,尝试解开一吨意大利面(无论如何我可能不会被允许这样做),或者其他任何人都可以推荐的东西(将不胜感激)。

这可能吗?

class="myClass !important"

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

请帮忙!提前谢谢了!

4

5 回答 5

3

不,那是不可能的。恐怕您将不得不自己解决CSS 特异性。

于 2012-12-05T17:07:13.127 回答
2

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

于 2012-12-05T17:09:53.570 回答
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; }
于 2012-12-05T19:25:40.253 回答
0

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

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;
}

希望这可以帮助。

于 2012-12-05T17:15:28.793 回答
0

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

假设我们div在 CSS 文件的每个地方都有一个 CSS 规则

div{border:solid 1px #ff0000;}

后来我们有了这个规则:

div{background:#000000;}

我们页面中的每一个div都将带有border和 abackground如果我们想要覆盖divcss 规则,我们需要执行以下操作:

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

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

于 2012-12-05T17:17:10.810 回答