Mehrere styles in einem File

matthiasschnueriger

Erfahrenes Mitglied
Hallo

Ich möchte ein Template erstellen, bei dem jeden Monat die Farben ändern.
Das heisst, z.B. im Januar habe ich die zwei Hauptfarben schwarz und weiss,
im Februar, grün und blau, etc.

Gibt es eine Möglichkeit, im CSS-File irgendwie mit PHP zu arbeiten, wie hier
von mir dargestellt?

Code:
<?
Wenn Monat = Januar
dann $dunklefarbe = schwarz und $hellefarbe = weiss

wenn Monat = Februar
dann $dunklefarbe = grün und $hellefarbe = blau

.... März

.... April etc.

?>

navigation {
background-color:<? $dunklefarbe?>;
color:<? $hellefarbe?>;
}

Vielen Dank für eure Mithilfe.

Gruss Matthias
 
Du schreibst alle deine Styles in die CSS und benennst die style_January style_February usw...
Und dann arbeitest du mit Variablen in PHP..

PHP:
<?php
$monat=date("F");
$style="style_".$monat;
?>

<table class="<?php echo $style; ?>">

Habs nur auf die schnelle geschrieben und hab ka obs funktioniert aber ein Denkanstoss isses auf jedenfall....

Hoffe ich konnte dir nen bissl helfen.. ist das erste was mir einfallen würde....

MFG
 
Zuletzt bearbeitet:
Hiho
auf diese Art könntest du schonmal die Farbe für jeden Monat festlegen.
Die Variablen "$color1" und "$color2" enthalten danach die gewünschten, monatlich bestimmten, Farben.

PHP:
<?php
// --
// M.Freiholz
// --

// get current date informations
$aDate = getdate();

// holds the current month as integer
$iCurrentMonth = $aDate["mon"];

// pick the color
$color1 = "";
$color2 = "";

switch( $iCurrentMonth ){
    case 1:
        $color1 = "black";
        $color2 = "white";
        break;
    case 2:
        $color1 = "red";
        $color2 = "green";
        break;
    case 3:
        $color1 = "black";
        $color2 = "white";
        break;
    case 4:
        $color1 = "red";
        $color2 = "green";
        break;
    case 5:
        $color1 = "black";
        $color2 = "white";
        break;
    case 6:
        $color1 = "red";
        $color2 = "green";
        break;
    case 7:
        $color1 = "black";
        $color2 = "white";
        break;
    case 8:
        $color1 = "red";
        $color2 = "green";
        break;
    case 9:
        $color1 = "black";
        $color2 = "white";
        break;
    case 10:
        $color1 = "red";
        $color2 = "green";
        break;
    case 11:
        $color1 = "black";
        $color2 = "white";
        break;
    case 12:
        $color1 = "red";
        $color2 = "green";
        break;
    default:
        // this case should never be happen...
        $color = "purple";
        $color = "narf";
        break;
}

print( "Monat = " . $iCurrentMonth . "<br>" );
print( "Farbe 1 = " . $color1 . "<br>" );
print( "Farbe 2 = " . $color2 . "<br>" );
?>

Gruß Manuel

Nachtrag 1
Das obere Beispiel gefällt mir besser :)
 
Hab eben mal mein Beispiel getestet und es funktioniert.
Wäre eine kurze und einfache Lösung deines Problems ;)

Freue mich über eine Bewertung wenn ich dir helfen konnte.

MFG
Sandro
 
Hallo

Vielen Dank für eure Beiträge, allerdings ist es noch nicht ganz das was ich suche.
Ich möchte natürlich nicht 12 stylesheets haben, die bis auf die 2 Grundfarben genau
gleich aussehen. Sonst müsste ich ja bei einer Änderung alle Files anpassen.

Was ich mir vorstelle ist quasi 1 stylesheet mit allen Angaben, wo aber anstatt
der Farben jeweils PHP-includes drin sind. So was:

Code:
.beispiel
{
height:100px;
color:<? include('$grundfarbe1') ?>
border-color: <? include('$grundfarbe2') ?>
}

Und dann habe ich 12 files (colors_january, colors_february, etc), in denen nur die zwei Hauptfarben abgespeichert sind und die dann automatisch (je nach Datum), ins Main-CSS geladen werden. Habe ich mich klar genug ausgedrückt? :-) Und funktioniert sowas überhaupt?
 
Ja funktioniert, du musst aber darauf achten, dass die Dateien dann nicht die Dateiendung .css sondern .php haben müssen. Sonst werden sie normalerweise vom Server nicht verarbeitet.
 
Hmmm.... aber genau das ist irgendwie mein Problem.
Ich habe jetzt wie geplant die Farben mit PHP ins CSS eingefügt, d.h. ich muss
dann das CSS-File, welches jetzt auch die PHP-Includes hat, als .php abspeichern.
Doch dann muss ich das im HTML-Template ja als
Code:
<link href="css/css.php" rel="stylesheet" type="text/css" />
statt
Code:
<link href="css/css.css" rel="stylesheet" type="text/css" />
abspeichern. Und dann funktioniert das Ganze leider nicht mehr...

Wenn ich jedoch das css/css.php einzeln öffne, sehe ich, das mit dem include alles geklappt hat.

Muss ich als beim <link type> was ändern oder wo liegt wohl der bug?
 
1 CSS Datei mit 7 Styles für jeden Wochentag
Hier ein Beispiel:

CSS Datei:
###Monday###
inhalt
###Monday###
###Tuesday###
inhalt
###Tuesday###

PHP Datei:
PHP:
/* CSSDATEI EINLESEN */
$inhalt = file_get_contents($ordner.$datei);

/* Inhalt Zerlegen */
$output=explode("##".date("l")."###", $inhalt);
/* $output[0] = string vor der Auswahl
   $output[1] = Der gewünschte Style
   $output[2] = string der folgt
Wichtig für die Funktionsfähigkeit ist, das vor ###Monday### mindestens 1Zeichen ist.
Ansonsten wäre bei auswahl Monday $output[0] = der gewünschte Style*/

print $output[1];
 
Super, endlich hat alles geklappt!
Die Lösung ist zwar nicht ganz so hübsch, da jetzt der ganze CSS-Code im HTML-File included ist, aber halb so wild.

Ich habe jetzt einfach den Code von Gainwar in einem File (colorchooser.php) gespeichert und mit meinen "Monatsfarben" angepasst. Dieses File include ich ganz zuoberst in meinem HTML-Template. Im Bereich <style> </style> include ich das PHP-File mit den CSS-Eigenschaften (css.php). Damit funktioniert jetzt alles einwandfrei.

Vielen Dank euch allen für die nützliche und schnelle Unterstützung. Gibt natürlich noch eine gute Bewertung von mir ;-)

Grüsse
 
Zurück