CSS中的PHP - “如果页面在此目录中,请回显此”

时间:2012-07-17 17:01:24

标签: php css directory

我在同一主机软件包上有几个网站。他们都在不同的目录中。 (即“htdocs / site1”)。我希望能够让他们共享一个CSS文件。

我想知道是否有办法根据网站所在的目录更改某些元素的颜色。

理想情况下,我希望能够定义页面所在的目录以及每个目录使用的颜色。然后在我的CSS中执行以下操作:

.button { color: <?php echo $color ?> ;}

获取颜色变化的每个元素。

这可能吗?如果可行,我该如何设置呢?

谢谢

4 个答案:

答案 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的更多信息。