0

可能重复:
是否有设置 !important 在 CSS 文件中的每个属性上的快捷方式?

我有一个独特的问题。在 css 中,!important 覆盖任何已经声明的元素 - 但是假设我希望所有样式都覆盖任何其他提到的样式表;好吧,通常我会将覆盖放在 html 文件中,如下所示:

<link rel="stylesheet" type="text/css" href="mystyle.css">
<link rel="stylesheet" type="text/css" href="override.css">

但由于某种原因,这不起作用。具体来说,我正在做的是添加类来附加基本的 CSS 样式。像这样:

<div class="no-border-right float-left no-margin-top"></div>

在我的 CSS 中:

.no-border-right {
    border-right: 0px solid transparent;
}

.float-left {
    float: left;
}

.no-margin-top {
    margin-top: 0;
}

但是,它仍然不是压倒一切的。我只想添加!important到每个元素,但问题是,我已经构建了 14gb 库。(我只有在无聊的时候才这样做……呵呵:P)所以我想知道如何添加!important到每个元素中。像:

* {
    ...!important;
}

也许甚至没有……有什么想法吗?

4

5 回答 5

1
sed -i 's/;$/ !important;/' override.css other.css css.css files.css

只需物理添加它们。阅读其他答案,了解为什么!important这不是一个好主意,但永远不要说我们没有给你足够的绳索让你上吊。

于 2012-11-14T00:09:44.893 回答
1

可能您的新选择器的优先级低于您在 mystyle.css 上的选择器?

CSS/训练/选择器的优先级

CSS:了解选择器的优先级/特异性

!important 覆盖这些计算,但是如果可能的话,应该避免使用标准方式的黑客攻击。

于 2012-11-14T00:10:10.703 回答
0

没有简单的方法可以为文件中的每个元素添加重要信息。话虽如此,这!important是一个非常糟糕的主意,并且只能作为最后的手段使用,因为它破坏了在 CSS 中覆盖样式的自然能力。您需要了解CSS 选择器的特殊性,这就是您的样式不会覆盖前一个文件中的样式的原因。第一个文件中的样式可能更具体。

请显示内容mystyle.css

于 2012-11-14T00:07:01.697 回答
0

这是一个坏主意...阅读我在下面链接到的文章。

尽管如此,答案仍然是否定的,没有办法在 CSS 中做到这一点。但是,由于您包含 CSS 文件(在 HTML 中)的顺序,override.css 将优先于 mystyle.css。向 CSS 文件中的每个声明添加重要信息是公然的误用。阅读Chris Coyier的这篇文章,了解更多关于何时使用它适合使用与何时不应该使用它的详细信息。

于 2012-11-14T00:07:58.010 回答
0

如果要覆盖上述或已实现的样式,请使用层次结构中更高的选择器。每次更具体时,层次结构中较高的 CSS 样式都会被覆盖。

例如:

HTML:
   <div class="container">
    <div class="old-style stale vintage">
      <div class="new-style override-old-style">
        <div class="no-border-right float-left no-margin-top">
        </div>
       </div>
    </div>   
   </div>

 CSS:
  .no-border-right{border-right: 0px solid transparent;}

  .new-style .float-left{float: left;}

  .old-style .no-margin-top{margin-top: 0;}

.new-style .float-left 应该覆盖 .no-border-right。并且 .old-style .no-margin-top 应该覆盖这两种样式。如果您尝试使用同一级别的样式,例如 .no-border-right .float left,则同一级别的样式将被抵消。当您在样式表中向下移动时,样式必须有更详细的描述。使用新的选择器添加您想要覆盖的新样式。我通过在同一站点上工作的一组开发人员使用的样式表中使用 !important 来学习这种方法。这不漂亮。

如果您必须获得比类更具体的信息,并且您正在更改特定元素,请继续使用 ID。我知道大多数 Web 开发人员都看不起它。但是,如果小心处理并偶尔使用,它们会很有用。不要对他们发疯。它们非常适合用于个性化、模式等。同样,请小心处理。

最重要的是,让 !important 覆盖你的最后手段。把它想象成一个紧急按钮。仅在可怕的超控紧急情况下使用。

于 2012-11-14T02:14:40.970 回答