0

我正在尝试在网络浏览器上为网页注入字体样式。

更改页面的每个元素。

* {
 font-size: 100%;
 font-family: Arial!important;
}

这个问题中几乎成功了,但这种风格被覆盖了。我也想阻止这些覆盖。使用javascript来解决也是可以的。

4

2 回答 2

5

如果它被覆盖,请确保它是样式表中的最后一件事(或包含的最后一个样式表)。CSS 中的“级联”意味着最后一个定义获胜。

于 2012-04-30T04:33:11.307 回答
2

也添加!importantfont-size声明中:

* {
 font-size: 100% !important;
 font-family: Arial !important;
}

如果您在用户样式表中使用它(正如“尝试在 Web 浏览器上为网页注入字体样式”所暗示的那样),那么您的规则不能被覆盖。

另一方面,如果这只是作者样式表的一部分,那么它可以被用户样式表覆盖,而您对此无能为力。它不会被浏览器默认样式表覆盖,因为它们不使用!important. 对于其他作者样式表,级联规则意味着您不能被覆盖,除非被使用的规则覆盖!important

在两者都有的作者样式表规则之间的斗争中!important,更具体的获胜,具体由 CSS 规范精确定义。在同样特定的设置之间,最新的设置获胜。

选择器*具有最低可能的特异性 0,0,0,0。对于任何选择器,您始终可以构造另一个具有更高特异性的选择器。但是,元素属性内的 CSS 规则style被认为具有最高的特异性。

因此,如果您知道将使用哪些其他 CSS 规则,则可以通过在选择器列表中添加具有更高特异性的选择器来击败它们。

于 2012-04-30T04:55:57.873 回答