我正在从我的 firefox 插件的每个页面中注入一些 html + css。但是这种样式有时会被样式表覆盖。我想停止这种行为。
我知道这可以通过一些 css 技巧来解决。例如添加!important
。但是 Firefox 或 xul 有没有一种方法可以轻松地做到这一点?
我正在从我的 firefox 插件的每个页面中注入一些 html + css。但是这种样式有时会被样式表覆盖。我想停止这种行为。
我知道这可以通过一些 css 技巧来解决。例如添加!important
。但是 Firefox 或 xul 有没有一种方法可以轻松地做到这一点?
单独使用!important
是不够的,网页可以做同样的事情并且仍然覆盖你的样式。您可以使用样式表服务来注册用户样式表。如果您随后使用!important
,则网页将不再能够覆盖您的样式。
请注意,用户样式表始终是全局的,适用于所有网页以及浏览器自己的 XUL 文档。您可以使用@-moz-document将它们限制为特定网页。
#MEGA_PLUNGIN a {}
#MEGA_PLUNGIN span {}
#MEGA_PLUNGIN div {}
#MEGA_PLUNGIN table {}
...
不是最好的解决方案,但正确...
对我来说,这是您肯定会使用!important
.
也就是说,您可以尝试使用特异性来确保设置您的样式。
因此,请确保您的目标元素尽可能精确,以便覆盖那些不那么具体的样式。
例如,如果你有这个结构
<body>
<div>
<h1 class="something">
<a href>
该网站的样式可能针对
h1.something a{
你应该致力于做到这一点
body div h1.something a{
哪个更具体,并且会覆盖上述样式。
您可能可以做的另一件事是append
在 之前的样式</head>
,这将使它们在级联中最后出现,并且如果它们相等,将被应用。