1

我当前的项目中有很多 CSS 文件,而且这些文件中的很多样式都有 !important 除了它们之外。我内心的一种感觉告诉我,这不是一件好事。有人可以阐明当我们使用 !important 时会发生什么以及它是否是一个好主意。

谢谢,

萨钦

4

2 回答 2

4

!important表示规则不能被覆盖。请注意,用户样式表使用!important将覆盖作者样式表。

http://www.w3.org/TR/CSS21/cascade.html#important-rules

这是好是坏真的取决于使用情况。我自己不经常使用这个关键字。一个例子是它允许我覆盖从 3rd 方小部件/插件中提取的样式。

于 2012-05-16T15:52:25.600 回答
3

!important给出样式优先级,并将确保(在可能的情况下)它是使用的样式。如果您正在使用!important选择器是因为您的选择器不够具体,或者没有经过深思熟虑,那么这不是他们应该使用的方式。对我来说,当你可能不得不处理你无法控制的样式时,它更有用。

为了说明,您可能想要使用 `!important,您可能有两个样式表。一个“全局”,您可以控制,一个“本地”,您可以控制。

在全局样式表中,您可能有以下内容:

p span {
    color: black;
}

在本地,您可以通过执行以下操作来覆盖它:

p span {
    color: red;
}

这可能有效,但是如果在全局样式之前包含本地样式,则会发生冲突并且全局样式将优先。为了克服这个问题,你可以这样做:

color: red!important;

如果您可以更具体地使用选择器,最好这样做,而不是使用!important.

全局,所有跨度都是黑色的:

span {
    color: black;
}

在本地,段落内的跨度是红色的:

p span {
    color: red;
}

使用!important真的没有什么“错误”,我想这是一个案例,但希望上面解释了如何充分利用它们。

关于 CSS 技巧的“当使用 !important 是正确的选择时”的更多讨论。

于 2012-05-16T16:03:18.953 回答