我在同一主机软件包上有几个网站。他们都在不同的目录中。 (即“htdocs / site1”)。我希望能够让他们共享一个CSS文件。
我想知道是否有办法根据网站所在的目录更改某些元素的颜色。
理想情况下,我希望能够定义页面所在的目录以及每个目录使用的颜色。然后在我的CSS中执行以下操作:
.button { color: <?php echo $color ?> ;}
获取颜色变化的每个元素。
这可能吗?如果可行,我该如何设置呢?
谢谢
答案 0 :(得分:9)
您可以根据目录添加不同的类到您的body标签:
<body class="<?php echo $dir; ?>">
每个目录为$dir
变量赋予不同的值(让我们说$dir = 'site1'
,...)...
...然后有类似的东西:
.site1 #button { /*styles*/ }
.site2 #button { /*styles*/ }
.site3 #button { /*styles*/ }
在CSS文件中。
答案 1 :(得分:2)
您可以将CSS类添加到HTML文档的body标记以确定该站点。在PHP中,您必须找到将正确的站点写入文档的方法。你使用某种全球模板吗?
只是为了给你一个想法:
PHP:
<?php
// some code
// some logic to determine which site you are on - let's say ...
$site = 'SITE1';
?><body class="<?php echo $site; ?>"><?php
// more code
?>
CSS:
body.SITE1 #button { color: #ff0000; }
body.SITE2 #button { color: #0000ff; }
body.SITE2 #button { color: #123456; }
答案 2 :(得分:1)
你可以使用php动态生成css文件,你有
<?php
switch ($_SERVER['SERVER_NAME']) {
case 'www.site1.com':
$color = '#ff0000';
break;
case 'www.site2.com':
$color = '...';
break;
...
default:
$color = '...';
?>
.someclass { color : <?php echo $color ?>; }
然而,这有点效率低下。您将构建一个css文件,只是为了每次更改一种颜色。更好的方法是简单地将页面标题中的颜色更改嵌入为内嵌样式。这样你就不必惹恼你的服务器解析CSS文件就好像它们是PHP脚本一样,并且你可以将特定于站点的css覆盖放入站点标题中的内联样式。
答案 3 :(得分:1)
老实说,我建议你在你的html标签上添加一个类:
<html class="site1">
在CSS中,定义你的css:
.site1 * .button1{ background:#f00;}
.site2 * .button1{ background:#f0f;}
.site3 * .button1{ background:#ff0;}
对于PHP方法,您可以找到有关此主题here的更多信息。