有没有办法让CSS选择器应用于特定主机? (对于我的自定义浏览器样式表。)

时间:2011-03-16 20:55:14

标签: css webkit

我想在特定网站上应用样式(编辑:在我的浏览器的用户定义样式表中,我的机器上的本地文件,让我自定义其他人的网站为我呈现),但是许多网页上的选择器通常是通用的(显然不受我的控制,因为它们不是我的网站。)

如果我必须使用非常通用的选择器(例如#box)来自定义给定的网站,那么该样式可能会无意中影响具有相同通用选择器的其他网站。有没有办法用选择器指定一个域,所以我可以将每个网站的自定义样式分开?

我还发现@-moz-document看起来不错,但是特定于Mozilla,我使用的是WebKit浏览器。有没有等价的?

@-moz-document url(https://www.example.com/decrypt.php) {

4 个答案:

答案 0 :(得分:1)

CSS是否托管在也允许您编写脚本的服务器上?您是否尝试编写服务器端脚本以根据为页面提供服务的主机生成正确的CSS规则?

编辑于2010年3月30日添加:

使用Greasemonkey扩展程序执行此操作可能会更好。它比用户定义的样式表更强大,因为您可以使用JavaScript,添加域或特定于页面的规则就像在标题中的注释中添加特殊标记一样简单。 Greasemonkey专门用于处理您的问题,当您需要一个插件在Firefox中运行Greasemonkey脚本时,Chrome内置了Greasemonkey支持。

答案 1 :(得分:0)

如果你可以使用javascript修改HTML,那就有办法了。它可能会像这样(使用JQuery):

var hostId = // detect the id of the host
var highLevelElement = $("body");  // or a different element that holds everything
highLevelElement.attr("id", hostId);

然后,在你的CSS中,你可以这样做:

#Mozilla div.Whatever { background-color: orange; }
#IE6 div.Whatever { background-color: red; }
#IE9 div.Whatever { background-color: green; }
// etc.

答案 2 :(得分:0)

考虑安装 uBlockOrigin 等广告拦截器,然后编写一些自定义过滤器。您可以在设置 -> 我的过滤器中添加这些自定义过滤器。

examplewebsite.com###ExampleId, .ExampleClass:style(background-color: yellow !important;)

答案 3 :(得分:-1)

嗯,我认为php是最合理的解决方案,实际上非常简单。 在某些情况下,使用php来决定什么/何时做,并回显某些css文件。

如果您需要更多帮助,请告诉我们您的问题,我会为您编写完整的解决方案。