如果我将CSS根样式重写为:
body .dijitTitlePane .dijitTitlePaneTextNode {
color: #FFFFFF;
font-family: Verdana, arial;
font-size: small;
font-weight: bold;
}
现在我想使用原始的.dijitTitlePane .dijitTitlePaneTextNode
CSS样式,我可以在这里使用“超级”类定义吗?
谢谢,
大卫
答案 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。