防止由firefox插件创建的html元素的样式被站点样式表覆盖

时间:2011-09-29 12:56:19

标签: css firefox-addon xul firefox-addon-sdk

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

我知道这可以通过一些css技巧来解决。例如,添加!important。但有没有办法在firefox或xul中轻松完成这项工作?

3 个答案:

答案 0 :(得分:1)

单独使用!important是不够的,网页可以做同样的事情并仍然覆盖您的样式。您可以use the Stylesheet Service注册用户样式表。如果您然后使用!important,则网页将无法再覆盖您的样式。

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

答案 1 :(得分:0)

#MEGA_PLUNGIN a {}
#MEGA_PLUNGIN span {}
#MEGA_PLUNGIN div {}
#MEGA_PLUNGIN table {}
...

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

答案 2 :(得分:0)

对我来说,这是一个肯定会使用!important的案例。

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

因此,请确保尽可能准确地定位元素,以覆盖那些不具体的样式。

例如,如果你有这个结构

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

网站的样式可能会定位

h1.something a{

你的目标应该是这样做

body div h1.something a{

更具体,会覆盖上述样式。

你可以做的另一件事是append你的风格就在</head>之前,这会使它们在级联中显示为最后一个,如果它们相等,则会被应用。