Wechselnde Hintergrundgrafiken mit PHP

Weil ich mich gerade selbst damit auseinandersetzen musste, gibt’s hier nen kleinen Schnipsel wie man mittels PHP (und natürlich CSS) wechselnde Hintergrundgrafiken in eine Website einbaut. Den Disclaimer von wegen Grafikgröße, Ladezeiten etc. erspare ich mir hier aber.

Der Trick besteht darin, im HTML kein Stylesheet zu verlinken, sondern eine PHP, die das Stylesheet beinhaltet. Die Verlinkung erfolgt wie gewohnt im head-Teil der Seite, nur dass die Datei eben nicht style.css, sondern style.php heißt:

<link rel="stylesheet"  type="text/css" href="style.php" media="screen, projection" />

Diese style.php-Datei kann dann etwa so aussehen:

<?php
    header('content-type:text/css');

    $bild = mt_rand ( 1, 5 );
    $src = '/Bilder/Background'.$bild.'.jpg';
?>

body{
    background-image: url(<? echo $src; ?>);
    background-repeat: no-repeat;
}

Wichtig ist die Zeile header('content-type:text/css');, damit das CSS richtig ankommt. Danach wird eine Zufallszahl zwischen 1 und 5 erzeugt — entsprechend der Anzahl an Bildern, die man abwechseln möchte. Bei $src wird schließlich der Pfad zu den Bildern hinterlegt, die nach dem Schema BackgroundX.jpg gespeichert sind, wobei das X die entsprechende Nummer widerspiegelt. Das funktioniert übrigens nicht nur mit dem body-Element, sondern auch mit div etc.

In der gleichen Datei lassen sich auch alle weiteren CSS-Anweisungen einbinden. Natürlich könnte man die Zufallsauswahl in eine eigene .php-Datei fassen und diese dann entsprechend aufrufen, was aber die Zahl der Verlinkungen erhöhen würde und überhaupt: Warum denn kompliziert, wenn es auch einfach geht?

3 Kommentare

  1. robert

    Hallo,
    ich möchte tatsächlich nur diese style.php extra aus der style.css aufrufen.
    Wie sieht das dann aus.

    Danke

    • FlorianKo

      Hi,
      ich glaube ich stehe gerade ein bisschen auf dem Schlauch und verstehe die Frage nicht.
      Du möchtest die .php– aus der .css-Datei aufrufen? Und wenn ja, wozu? Die .php-Datei kann ja theoretisch alle weiteren Formatierungen enthalten. Oder Du verlinkst aus dem html heraus zusätzlich auf ein weiteres style.css — die Einbindung mehrerer Stylesheets ist ja an sich kein Problem.
      Ich hoffe das konnte Deine Frage einigermaßen beantworten. Ansonsten gerne nochmal nachfragen 🙂

      • robert

        Danke, hat sich erledigt. In der php Datei kann man das ja alles auch machen wie du schon sagtest.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

© 2024 In meinem Kopf…

Theme von Anders NorénHoch ↑