【问题标题】:How can override a CSS class to that nothing get applied?如何覆盖一个没有应用的 CSS 类?
【发布时间】:2012-01-16 00:54:56
【问题描述】:

我实际上想说的是,如果标题奇怪的是我有一个应用它自己的风格的框架(Richfaces),我很抱歉。我有一家公司 CSS,但我不是 CSS 专家,我需要的只是覆盖来自 Richfaces 的 CSS,这样就不会对公司 CSS 中的内容应用任何内容。

以下是我不想应用的来自 Richfaces 的 CSS:

*.rf-dt-hdr-c {
    border-bottom-width: 1px;
    border-bottom-style: solid;
    border-bottom-color: #C4C0C9;
    border-right-width: 1px;
    border-right-style: solid;
    border-right-color: #C4C0C9;
    background-color: #D4CFC7;
    background-image: url(/rfRes/colHdrGrad.png.xhtml?v=4.0.0.Final&db=eAFjZJBjZDBiZBBh!H!!zlXG!1fOH2dgAgA4fAdk&ln=org.richfaces.images);
    background-position: top left;
    color: #000000;
    font-family: Arial, Verdana, sans-serif ;
    font-size: 11px;
    font-weight: bold;
    padding: 4px;
    text-align: center;
}

【问题讨论】:

    标签: css richfaces css-specificity


    【解决方案1】:

    为了覆盖这一点,您只需将每条规则重置为您喜欢的内容,并确保您的公司 CSS 在链接顺序中显示在较低的位置。 (也就是说,最后应用您的公司风格。)

    例如,如果您在 CSS 中根据需要重做每个样式,您应该像这样链接它们

    <link rel="stylesheet" type="text/css" href="Styles/richface.css" />
    <link rel="stylesheet" type="text/css" href="Styles/corporate.css" />
    

    如果样式相同,则将应用顺序中显示较低/较晚的样式(因为它会覆盖前者)。

    确实,要让您的样式覆盖其他样式,您的 CSS 需要比其他 CSS 更具体。

    因此,您还可以将元素设置得更具体。

    代替

    *.rf-dt-hdr-c {

    把它弄成这样

    div#wrapper div.rf-dt-hdr-c {

    这增加了特异性。当然,规则需要与您的 HTML 相匹配。

    有关特异性的更多信息,请参阅:http://www.htmldog.com/guides/cssadvanced/specificity/

    【讨论】:

      【解决方案2】:

      按照您在对答案的评论中描述的意义上说,“我不知道用什么来覆盖属性”是不可能的。没有办法在 CSS 规则中指定不应用另一个规则。

      【讨论】:

      • 感谢您的回复,希望有 +1
      【解决方案3】:
      text-align: center !important;
      

      !important 覆盖其他样式

      【讨论】:

      • !important 应该是最后的手段。它破坏了 Cascading 样式表的全部目的,而且它喜欢感染你的代码——每次你想从那里覆盖某些东西时,你最终需要另一个 !important 来覆盖第一个。
      猜你喜欢
      • 2014-01-24
      • 1970-01-01
      • 1970-01-01
      • 2011-04-18
      • 2012-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多