【问题标题】:Client-side user custom CSS single file for overriding multiple domains用于覆盖多个域的客户端用户自定义 CSS 单个文件
【发布时间】:2010-03-17 19:23:42
【问题描述】:

这是在 Safari 中使用的,尽管它也可能在 Firefox 上使用。在 Chrome 中,无论如何您都必须添加一个插件(通常允许每个域自定义 CSS),而 Opera 已经允许在不需要任何 CSS 的情况下完成此操作。但是,虽然它用于在客户端进行自定义,但它也是一个纯 CSS 问题。所以I'm using no plugins here

因此,我再次获得了适用于所有域的自定义 CSS 代码(很容易)。现在我想为每个域指定 CSS 代码。全部由 Safari 加载的 1 个 CSS 文件。

通过网络和谷歌搜索,我发现了两种据称可以做到这一点的方法,但实际上都没有。他们都记录在userstyles.com

  • @-moz-document 域(“your-domain.com”){}。这将是完美的,因为我可以有几个这样的标签,只需选择为哪个域加载哪种样式。它只是不起作用。

  • @namespace 非常令人困惑,我已经尝试了所有我能想到的变体。没有任何效果。

【问题讨论】:

  • Firefox 支持 UserStyles.css。
  • @Slaks 很酷,那么我应该修正我对 firefox 的评论。
  • 我认为这个问题在找到答案之前会变老,这意味着即使在今天它也可能没有答案。对于在这里偶然发现的任何人,我猜单独使用 CSS 是无法做到这一点的。

标签: css domain-driven-design customization client-side


【解决方案1】:

Safari 似乎不支持@-moz-document 规则,这可以解释为什么这对你不起作用。在 Firefox 中,可以使用以下样式表:

@namespace url(http://www.w3.org/1999/xhtml);

@-moz-document domain("stackexchange.com"), domain("stackoverflow.com") {
    /* your styles here */
}

然而,在 Safari 5 中,有一个名为 User CSS 的扩展(注意:链接指向开发者的网站,而不是指向 Safari 扩展库中的页面;警告购买者),它允许您应用单个用户样式表到多个站点。 (这似乎是 Stylish 的粗略 Safari 等价物。)

关于您最后的评论,我认为您是对的:似乎仍然无法仅使用 CSS 来做到这一点。

【讨论】:

  • 虽然我们的猜测是我们所拥有的一切,但它就是我们所拥有的一切。 (加上你指出的那个扩展):)
【解决方案2】:

您是否尝试过基于 document.domain 动态设置<link /> src?如果您使用的是javascript,那就是。这将允许您将链接标签的 src 设置为 mydomain.com.cssmyotherdomain.com.css

【讨论】:

  • 我没有尝试过,但我根本没有使用 javascript。我也不想。 ;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-30
  • 1970-01-01
  • 1970-01-01
  • 2016-10-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多