Werte aus INI File in CSS benutzen

  • Hallo,

    ich programmiere gerade eine Website, in der ich eine CSS Datei eingebunden habe. In dieser CSS Datei werden auch Farben für Flächen etc definiert.
    Nun würde ich gerne die Farbwerte (z.b. #FFFFFF) in einer INI Datei speichern, damit ich sie einfacher ändern kann z.b. wenn die Website ein anderes Farbkonzept haben soll.

    Ist das möglich? Dafür müsste ich ja quasi Variablen in CSS nutzen.
    Theoretisch könnte ich ja einfach ein PHP echo $varialbe hin machen, aber da ich die CSS-Regeln in einer eigenen Datei habe, wüsste ich nicht, wie ich nicht, wie ich PHP dort nutzen sollte...

    kann mir da jemand weiter helfen?

  • Hallo,

    > Nun würde ich gerne die Farbwerte (z.b. #FFFFFF) in einer INI Datei speichern, damit ich sie einfacher ändern kann z.b. wenn die Website ein anderes Farbkonzept haben soll.
    Der Denkansatz ist... extrem komisch. WAS soll das denn bringen? Bzw. Welchen Vorteil hättest du, die Farbe in der INI-Datei zu ändern statt direkt in der CSS Datei? Antwort: keinen, außer eine Datei mehr (abgesehen davon geht das so nicht).

    Man nimmt doch eben CSS-Dateien, um Stlyes vom Quelltext der Webseite zu entkoppeln. Sprich, wenn du der Seite einen neuen Look verpassen willst, dann brauchst du eben nur die CSS Datei anpacken.

    Außerdem kannst du in eine Webseite beliebig viele CSS-Dateien einbinden. Im Zweifelsfall machst du dir halt eine CSS-Datei, in der nur die Farben drin sind.

    Gruß, noisefloor

  • ich möchte einfach gesagt auf der Seite einen Colopicker einbauen, bei dem man eine Farbe auswählen kann. Dieser Farbwert soll in der INI gespeichert werden und beim erneuten aufruf der seite soll die seite eben in dieser Farbe erscheinen (bzw teile der seite).
    Um das zu erreichen muss ich den Farbwert ja irgendwo speichern, und da ich gerne mit PHP arbeite, wollte ich meine INI datei, die ich eh schon für anderen Sachen verwende, auch dafür verwenden.
    Oder wie speichert man sonst einen ausgewählten Farbwert?

  • soll global sein.
    Aber sebst wenn ichs in nem cookie speicher, wie bekomme ich den Wert dann in das CSS?
    Ja, mit javascript könnte ich die Elemente direkt beim Seitenaufruf manipulieren und die neue Farbe zuweisen, aber wieso sollte man das den Browser machen lassen, wenn die Farben eh selten geändert werden. Deswegen dachte ich, ich speicher die Farbe in der INI und lasse den Wert eben zb per PHP in das CSS schreiben, das dann fertig an den Browser geht. Dann müsste Javascript nicht noch erst was anpssen

  • Easy:

    <link rel="stylesheet" href="css.php">

    Und das PHP dazu:

    <?php
    header( "Content-Type: text/css" ) ;

    echo "h1 { background-color: red; }" ;
    ?>

    - - - - -

    Wenn die Farben haeufig geaendert werden, muss wahrscheinlich noch das Caching des Browsers abgestellt werden. Dazu braucht's noch ein paar weitere Header.

    Allerdings wird dann das PHP bei jedem Zugriff auf die Seite ausgefuehrt...

    Einmal editiert, zuletzt von Tell (15. November 2015 um 23:41)

  • Dafür bieten sich CSS-Präprozessoren an. Da gibt es einige: LESS, Stylus, SASS.

    Letztere ist die wohl bekannteste und nutze ich auch selber, würde ich also auch dir empfehlen.

    Beispiel von SASS:

  • So geht das: https://css-tricks.com/css-variables-with-php/

    Ein style-Element mit href-Attribut ist ja nichts anderes als eine Resource, die der Browser laedt. Ob die auf dem Server rumliegt, von einem Script berechnet wird, oder von kleinen pummeligen Elfen flugs in die Tastatur gehaemmert wird spielt keine Rolle - aus Sicht des Browsers ist es immer eine Datei.
    Automatisch zusammengefügt:
    Gerade gesehen: Tell hat das schon beschrieben, etwas weniger schick als der Blogpost, aber die Idee ist dieselbe.

  • Hallo,

    [quote] Aber sebst wenn ichs in nem cookie speicher, wie bekomme ich den Wert dann in das CSS?[quote]
    Clientseitig per JavaScript :) Da es aber global sein, ist der Weg per Cookie eh' hinfällig.

    Wenn du den Colorpicker implementiert hast, dann musst du den ausgewählten Wert halt an der Server übertragen, dort Speichern, dass CSS neu bauen (siehe oben) und die Seite neu ausliefern.

    Gruß, noisefloor

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!