如何将CSS样式恢复到其超级类

如何将CSS样式恢复到其超级类,css,Css,如果我已将CSS根样式重写为: body .dijitTitlePane .dijitTitlePaneTextNode { color: #FFFFFF; font-family: Verdana, arial; font-size: small; font-weight: bold; } 现在我想使用原始的.dijittilepane.dijittilepanetextnodeCSS样式,这里有“超级”类定义吗? 谢谢 David您可以将“继承”用于所需的样

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

body .dijitTitlePane .dijitTitlePaneTextNode {
    color: #FFFFFF;
    font-family: Verdana, arial;
    font-size: small;
    font-weight: bold;
}
现在我想使用原始的
.dijittilepane.dijittilepanetextnode
CSS样式,这里有“超级”类定义吗? 谢谢


David

您可以将“继承”用于所需的样式:

body .dijitTitlePane .dijitTitlePaneTextNode {
     color: #FFFFFF;
     font-family: Verdana, arial;
     font-size: small;
     font-weight: inherit;
}
这里,
font-weight
将使用“super”样式

编辑:定义样式后,无法获取“super”值。但是,您可以在页面元素中再次覆盖覆盖的值:

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

CSS不提供恢复机制。根样式级联到子样式的唯一方法是让子样式保持未定义或定义为继承,请尝试:

html body .dijitTitlePane .dijitTitlePaneTextNode {
    color: #FFFFFF;
    font-family: Verdana, arial;
    font-size: small;
    font-weight: bold;
}
另一种选择,如果你不关心IE6的支持:你可以把!重要的是,无论你想要什么样的风格,都要凌驾于其他风格之上

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

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

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

因此,您的默认设置:

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

要超车,您可以执行以下操作:

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

然后,完成后,将其移除

在这个问题中使用术语“超级类”、“惰性”和“重写”表明了“大多数开发人员对CSS的误解,因为他们试图将CSS视为一种编程语言,甚至是一种面向对象的编程语言,所谓的加倍是一种OOP类

这是对CSS用途的一个根本性误解,这导致开发人员试图使他们的CSS过于通用,以利于其自身

重要的是要记住,对于CSS的创建者来说,图形设计师是主要的利益相关者,而不是开发人员。图形设计师对面向对象编程的基本原则——多态性、继承和封装——并没有概念,这对开发人员来说是直观的。甚至变量的使用也是程序员特有的事情——因此为什么CSS没有变量


因此,与其从继承的角度来考虑这一切,不如了解。

您是否可以删除覆盖?覆盖的样式从何而来?如果它有一个不太具体的选择器,那么原则上你可以使用它;但是,如果您更改了同一选择器的属性,我相信您没有覆盖而是覆盖了以前的值,它们不再可用。您所说的“CSS根样式”是什么意思?请提供一个您的原始样式和过度使用的示例。他说他想要原始的“.dijitTitlePane.dijitTitlePaneTextNode”样式:如果这不是键入错误,那么他不是指继承的值,他指的是如果没有该规则会出现的任何内容。是的,我们使用dojo及其一个css集,即,苔原。我们为小部件定制了一些样式来创建自定义外观,现在我只想使用tundra.css中指定的默认样式。也许我应该复制并粘贴tundra.css中的任何定义,但我认为应该有更好的方法。关于继承的注意事项:继承值并不适用于所有值中的所有css属性。-1代表
!重要信息
-我认为使用
是个糟糕的主意!重要提示
一般来说。这是源于旧代码的一部分,某些dojo小部件的样式被覆盖以提供自定义外观。现在,我正试图为一个小部件使用默认的小部件样式,但就是找不到一个好的方法。唉,可能没有“好”的方法。我可能会复制原始样式,给它们起一个新的类名“classicStyle”。像OOCSS模型这样的东西(当然名称不好)在大型开发团队中也有使用。但是,是的,的确……CSS与OO语言完全不同。(尽管LESSCS等公司正试图将该模型引入工作流)