1

我正在从我的 firefox 插件的每个页面中注入一些 html + css。但是这种样式有时会被样式表覆盖。我想停止这种行为。

我知道这可以通过一些 css 技巧来解决。例如添加!important。但是 Firefox 或 xul 有没有一种方法可以轻松地做到这一点?

4

3 回答 3

1

单独使用!important是不够的,网页可以做同样的事情并且仍然覆盖你的样式。您可以使用样式表服务来注册用户样式表。如果您随后使用!important,则网页将不再能够覆盖您的样式。

请注意,用户样式表始终是全局的,适用于所有网页以及浏览器自己的 XUL 文档。您可以使用@-moz-document将它们限制为特定网页。

于 2011-09-29T13:22:35.123 回答
0
#MEGA_PLUNGIN a {}
#MEGA_PLUNGIN span {}
#MEGA_PLUNGIN div {}
#MEGA_PLUNGIN table {}
...

不是最好的解决方案,但正确...

于 2011-09-29T12:58:44.490 回答
0

对我来说,这是您肯定会使用!important.

也就是说,您可以尝试使用特异性来确保设置您的样式。

因此,请确保您的目标元素尽可能精确,以便覆盖那些不那么具体的样式。

例如,如果你有这个结构

<body>
    <div>
        <h1 class="something">
            <a href> 

该网站的样式可能针对

h1.something a{

你应该致力于做到这一点

body div h1.something a{

哪个更具体,并且会覆盖上述样式。

您可能可以做的另一件事是append在 之前的样式</head>,这将使它们在级联中最后出现,并且如果它们相等,将被应用。

于 2011-09-29T12:59:14.417 回答