如何将CSS样式恢复为超类

时间:2011-03-21 17:05:43

标签: css

如果我将CSS根样式重写为:

body .dijitTitlePane .dijitTitlePaneTextNode {
    color: #FFFFFF;
    font-family: Verdana, arial;
    font-size: small;
    font-weight: bold;
}

现在我想使用原始的.dijitTitlePane .dijitTitlePaneTextNode CSS样式,我可以在这里使用“超级”类定义吗? 谢谢,

大卫

4 个答案:

答案 0 :(得分:0)

你可以使用`inherit来获得你需要的风格:

body .dijitTitlePane .dijitTitlePaneTextNode {
     color: #FFFFFF;
     font-family: Verdana, arial;
     font-size: small;
     font-weight: inherit;
}

在这里,font-weight将使用“超级”风格。

编辑:定义样式后,无法获得“超级”值。但是,您可以在页面元素中重写覆盖值

<body class="dijitTitlePane" style="font-weight: normal">

CSS不提供恢复机制。根样式级联到子样式的唯一方法是让子项保持未定义或定义为inherit

答案 1 :(得分:0)

尝试:

html body .dijitTitlePane .dijitTitlePaneTextNode {
    color: #FFFFFF;
    font-family: Verdana, arial;
    font-size: small;
    font-weight: bold;
}

另一种选择,如果你不关心IE6的支持:你可以把!important放在你想要覆盖其他任何东西的任何风格上。

.dijitTitlePane .dijitTitlePaneTextNode {
     font-size: small !important;
}

答案 2 :(得分:-1)

您可能需要澄清为什么要将样式重新分配给相同的类。

您通常不希望为相同的类名重写样式声明。而是向要覆盖的对象添加/删除其他类。

所以,你的默认值是:

<div class="standardStyle"></div>

要超越,你可以这样做:

<div class="standardStyle additionalOverrideStyle"></div>

然后,完成后,将其删除。

答案 3 :(得分:-1)

没有!

使用术语&#34;超级&#34;和&#34; inerhitance&#34;并且&#34;覆盖&#34;在这个问题中演示了&#39;大多数开发人员对CSS的误解,因为他们试图将其视为编程语言甚至是面向对象的编程语言,所谓的"CSS Class"加倍为OOP类。

这是对CSS的基本误解,这会导致开发人员试图让他们的CSS过于笼统而不是为了自己的利益。

重要的是要记住,图形设计师将成为CSS创建者的主要利益相关者,而不是开发人员。图形设计人员不了解面向对象编程的基本原理 - 多态,继承和封装 - 这对开发人员来说是直观的。即使使用变量也是程序员特定的东西 - 因此CSS没有变量!

因此,不要在继承方面考虑所有问题,而是要了解specificity