扩展CSS样式表?

时间:2013-05-01 00:24:12

标签: css inheritance stylesheet multiple-domains

一个有趣的问题,但也许它已经解决了。我有一组适用于多个域的CSS样式表。它的架构方式,两个域共享相同的CSS文件,并将自己的定义和规则添加到样式表。我们的系统就是这样,只要开发人员对属于特定域的CSS文件进行更改,那么同样的更改也需要在另一个域的样式表中完成。

例如,如果我有两个域:Main,SubMain。其中的BOth共享一个名为global.css的样式表,而在SubMain域上工作的开发人员通过添加新规则来更改此样式表。为了确保主域中的内容不会中断,开发人员需要继续向global.css添加相同的规则到主域的global.css样式表。

为什么这个没有相同的共享位置超出了我,因为这是一个共享的工程项目。我的理解是,原因是更改将立即应用,不幸的是唯一的选择是在所有域中使用相同的样式表+目录结构。 但是这个问题确实存在并且是巨大的开销。无论如何都要扩展CSS样式表,以便可以将特定于域的CSS添加到扩展样式表中。

如果没有,可以提出哪些其他解决方案?

4 个答案:

答案 0 :(得分:1)

如果你在两个地方有相同的代码,为什么有两个文件(这也适用于编码 - 方法或变量或其他)?如果你使用的东西比较多,请把它放在一个地方,并在其他地方引用它。

您需要做的是将Main网站指向CSS文件的本地副本(如此):

<link rel=stylesheet type=text/css href="/global.css">

...然后在SubMain网站上,在您的标题中添加指向Main网站的CSS文件的链接(如此):

<link rel=stylesheet type=text/css href="http://mainwebsite.com/css/global.css">

要解决您的问题,只能在一个域(Main)上拥有可编辑的CSS文件/文件,然后使用另一个(SubMain)网站中的绝对URL链接到它们。 / p>

答案 1 :(得分:0)

我不明白你。我不知道你的问题在哪里。你想添加2个css样式表吗?

    <link href="style.css" type="text/css" rel="stylesheet" />
    <link href="style2.css" type="text/css" rel="stylesheet" />

或者你想要2个域使用1个样式表吗?

    <link href="http://url.com/style.css" type="text/css" rel="stylesheet" />

两个域都可以使用它。您没有链接到样式表的目录中。你把你风格的链接放在里面。这将解决您的问题。

答案 2 :(得分:0)

两个域都可以使用一个CSS文件。

<link rel="stylesheet" type="text/css" href="http://myotherdomain.com/css/global.css">

只需链接到一个CSS文件。

或者,如果您真的想要“同步”它们,您可以创建一个rsync脚本,但这没有意义。

答案 3 :(得分:0)

很明显,您知道可以跨域包含样式表:

<link rel=stylesheet type=text/css href="http://example.com/global.css">

但是你知道你可以包含多个样式表吗?创建一个包含所有“主”样式的样式表,并将其放在域中一个的global.css中(您的选择)。每个域唯一的样式可以位于特定于该域的样式表中。

<link rel=stylesheet type=text/css href="http://example.com/css/global.css">
<link rel=stylesheet type=text/css href="/css/specific.css">