2

同じホスティング パッケージに複数のサイトがあります。それらはすべて異なるディレクトリにあります。(つまり、「htdocs/site1」)。それらすべてで 1 つの CSS ファイルを共有できるようにしたいと考えています。

サイトがどのディレクトリにあるかに基づいて、特定の要素の色を変更する方法があるかどうか疑問に思っていました.

理想的には、ページがどのディレクトリにあり、各ディレクトリに使用する色を定義できるようにしたいと考えています。次に、CSS で次のようにします。

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

色が変化する各要素に。

これは可能ですか?可能であれば、どのように設定すればよいですか?

ありがとうございました

4

4 に答える 4

9

ディレクトリに応じて、body タグにさまざまなクラスを追加できます。

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

変数には、ディレクトリごとに異なる値(たとえば、...)$dirが与えられます...$dir = 'site1'

...そして、次のようなものがあります:

.site1 #button { /*styles*/ }
.site2 #button { /*styles*/ }
.site3 #button { /*styles*/ }

あなたのCSSファイルで。

于 2012-07-17T17:07:00.327 に答える
2

HTML ドキュメントの body タグに CSS クラスを追加して、サイトを特定することができます。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; }
于 2012-07-17T17:09:56.813 に答える
1

正直なところ、html タグにクラスを追加することをお勧めします。

<html class="site1">

CSS 内で、CSS を定義します。

.site1 * .button1{ background:#f00;}
.site2 * .button1{ background:#f0f;}
.site3 * .button1{ background:#ff0;}

PHP アプローチについては、このテーマに関する詳細情報をここで見つけることができます。

于 2012-07-17T17:10:54.627 に答える
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 オーバーライドをサイトのヘッダーのインライン スタイルに入れることができます。

于 2012-07-17T17:05:41.333 に答える