6

我想在 CSS 中创建一个 nostyle 类。这样在我的样式表中编写的任何 css 都可以与这个类重叠,我不需要任何样式。我使用了下面的代码,它不起作用。

<style type="text/css">
  .nostyle {
          margin: 0;
          padding: 0;
          border: 0;
          outline: 0;
          font-size: 100%;
          vertical-align: baseline;
          background: transparent;
        }   
   </style>
4

4 回答 4

4

您可能正在遭受其他规则覆盖您的类的 CSS 特异性规则,因为它们更具体。

考虑:

<div id="col1">
    <div class="rule1 another-rule">
        Test
    </div>
</div>

<style>
    .rule1 {
        margin: 0;
    }

    #col1 .another-rule {
        margin: 10px;
    }
</style>

在这种情况下,样式 DIV 上的边距始终为 10px,因为该规则具有更大的权重。

为了克服这个问题,你可以使用 CSS 的 !important 特性。尝试

.nostyle {
      margin: 0 !important;
      padding: 0 !important;
      border: 0 !important;
      outline: 0 !important;
      font-size: 100% !important;
      vertical-align: baseline !important;
      background: transparent !important;
    }   

这是 CSS 特定性如何工作的一个很好的指南:

CSS 特异性:你应该知道的事情

于 2013-11-04T14:03:42.113 回答
3

样式可能被覆盖。在每种样式之后添加!important以赋予它们更大的权重。

你的CSS看起来像:

.nostyle {
    margin: 0 !important;
    padding: 0 !important;
    ...
}
于 2013-11-04T14:03:23.323 回答
0

你可以在没有课程的情况下这样做,但你的 css 必须看起来更像这样:

 <style type="text/css"> 
 a,a:hover,div,p,font,table,li,ul,ol {
      margin: 0;
      padding: 0;
      border: 0;
       outline: 0;           font-size: 100%;
      vertical-align: baseline;
       background: transparent;
     }       </style>
于 2013-11-04T14:06:50.240 回答
0

添加!important是一种不好的做法。你应该看看CSS Priorities。这是一个定义优先级的简单列表:

  1. !important获胜。
  2. 排队
  3. 内部的
  4. 外部的

如果有相同级别的规则,您的优先级如下:

  1. 更具体的规则赢得 EG:div span #abc .class
  2. 在规则同样具体的情况下,写在最后的规则获胜。
于 2013-11-04T14:11:02.203 回答