CSS中的PHP-“;如果页面位于此目录中,则回显此;

CSS中的PHP-“;如果页面位于此目录中,则回显此;,php,css,directory,Php,Css,Directory,我有几个网站在同一个主机包。它们都在不同的目录中。(即“htdocs/site1”)。我希望能够让他们都共享一个CSS文件 我想知道是否有一种方法可以根据站点所在的目录更改某些元素的颜色 理想情况下,我希望能够定义页面所在的目录以及每个目录使用的颜色。然后在我的CSS中执行以下操作: .site1 #button { /*styles*/ } .site2 #button { /*styles*/ } .site3 #button { /*styles*/ } .button{color:;}

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

我想知道是否有一种方法可以根据站点所在的目录更改某些元素的颜色

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

.site1 #button { /*styles*/ }
.site2 #button { /*styles*/ }
.site3 #button { /*styles*/ }
.button{color:;}

到每个获得颜色更改的元素

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


谢谢

您可以使用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 ?>; }

.someclass{color:;}

然而,这有点低效。您将构建一个css文件,每次只更改一种颜色。更好的方法是简单地将颜色变化作为一种内嵌样式嵌入到页面标题中。这样,您就不必让服务器像解析PHP脚本一样解析CSS文件,您可以将特定于站点的CSS覆盖放在站点标题的内联样式中。

您可以根据目录向body标记添加不同的类:

<body class="<?php echo $dir; ?>">

在CSS文件中。

您可以将CSS类添加到HTML文档的body标记中,以确定站点。在PHP中,您必须找到将正确的站点写入文档的方法。您是否使用某种全局模板

给你一个想法:

PHP:


老实说,我建议您在html标记中添加一个类:

<html class="site1">

您可以通过PHP方法找到有关此主题的更多信息。

请举例说明您的URL。您使用的是子域/子目录还是虚拟主机?url看起来像普通url。“www.website.com”将托管在“htdocs/site1”上
body.SITE1 #button { color: #ff0000; }
body.SITE2 #button { color: #0000ff; }
body.SITE2 #button { color: #123456; }
<html class="site1">
.site1 * .button1{ background:#f00;}
.site2 * .button1{ background:#f0f;}
.site3 * .button1{ background:#ff0;}