我当前的项目中有很多 CSS 文件,而且这些文件中的很多样式都有 !important 除了它们之外。我内心的一种感觉告诉我,这不是一件好事。有人可以阐明当我们使用 !important 时会发生什么以及它是否是一个好主意。
谢谢,
萨钦
我当前的项目中有很多 CSS 文件,而且这些文件中的很多样式都有 !important 除了它们之外。我内心的一种感觉告诉我,这不是一件好事。有人可以阐明当我们使用 !important 时会发生什么以及它是否是一个好主意。
谢谢,
萨钦
!important
表示规则不能被覆盖。请注意,用户样式表使用!important
将覆盖作者样式表。
http://www.w3.org/TR/CSS21/cascade.html#important-rules
这是好是坏真的取决于使用情况。我自己不经常使用这个关键字。一个例子是它允许我覆盖从 3rd 方小部件/插件中提取的样式。
!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 是正确的选择时”的更多讨论。