外部样式表定义的未重置样式

时间:2015-03-02 12:34:51

标签: javascript jquery css

假设我在页面上定义了两个样式表:

  • 的site.css:

    .modal {
        position: absolute;
        width: 200px;
        ...
    }
    
    ...
    
  • reset.css:

    .reset * {
        position: static;
        width: auto;
        ...
    }
    

不幸的是,我无法控制reset.css样式表的内容。现在说,页面的全部内容都包含在div块中,并带有" reset"上课。在div块的深处,我需要定义一个代码块,它将忽略此类定义的样式。

作为一个例子,如果我有一个模态对话框,其中包含一个"模态"应用我需要它具有宽度为200px的绝对定位。我知道我可以再次重新定义所有样式,但这需要我保留两个相同样式的版本。

我一直绞尽脑汁想着如何做到这一点,我能想到的唯一方法就是通过javascript(可选择使用jQuery)。如果有人知道如何做到这一点,或者可以分享一些示例代码来让我继续前进,那就太棒了。

2 个答案:

答案 0 :(得分:0)

您可以使用javascript动态提供内联css。您首先需要获得“对话框”元素'变成一个变量说myDialogElement。然后你需要使用以下代码:

myDialogElement.style.position='absolute';
myDialogElement.style.width='200px';

答案 1 :(得分:-1)

选项是覆盖reset.csssite.css中的样式。 您只需要包含要更改的样式,其余样式仍然会生效。有两种方法可以做到这一点:

  1. 使用!important
  2. .something{ color:red; } /* in reset.css */

    .something{ color:blue !important; } /* in site.css */

    1. 增加特异性
    2. p{ color:red; } /* in reset.css */

      div p{ color:blue; } /* in site.css */

      如果可能,使用特异性是最好的方法,但使用!important也是有效的。以下是MDN docs on specificity in css