zufallsbild script in der css

  • Hallo ich möchte in meiner homepage, das das loge zufällig erscheint.

    es stehen 5 logos zu verfügung.

    meine css.php sieht so aus:



    in meiner index.php habe ich folgendes im head bereich:

    Code
    <link rel="stylesheet" href="css.php" type="text/css">



    es wird kein zufallsbild angezeigt.
    das logo fenster bleibt schwarz....

    was habe ich falsch gemacht ?

    gruß
    micha

  • Also auf den ersten Blick würde ich sagen, entweder .css oder .php aber css.php , das habe ich noch nie gesehen/gehört

    Also deine css datei bindest du zwischen <head></head> ein, wenn sie denn style.css oder design.css oder so heisst. Und die PHP via include in den Bereich wo Sie angezeigt werden soll. Allerdings darf die zwar css.php heissen doch weiß ich nicht ob Css dann interpretiert wird. btw. ich glaube es auch nicht

    2 Mal editiert, zuletzt von reeperbahner11 (26. Juni 2009 um 02:40)

  • Mein Tipp:

    Code
    header('Content-type: text/css');


    Löschen und dann nochmal schaun was passiert.
    An sich funktioniert das script ja.

  • Dein Script ist PHP-mäßig richtig, aber vom CSS her falsch. Schau dir nochmal die Syntax für background-image an.

    An die anderen: der header sendet einen sogenannten MIME-Type, der dem Browser sagt, dass er die Datei nicht als z.B. HTML-Datei, sondern als CSS-Datei auffassen soll. Mit header("Content-type: text/javascript"); könnte man zum Beispiel eine Uhr generieren, die von der Serverzeit ausgeht, aber mit Javascript weiterläuft.

    Information will frei verfügbar sein.

    Don't eat unpeeled hedgehogs.

  • Der header soll aber als aller erstes kommen. Tut er ja aber nicht da er erst mit dem aufrufen der CSS-datei kommt oder sehe ich das falsch?

  • Jein. Die Datei wird ja nicht über den Server eingebunden, sondern über HTTP. Dabei geht der Browser die Dateien durch, die sonstwo im Quelltext angegeben sind (<img src=...>, <link href=...>, <script src=...>) und guckt, auf welche Art er sie einbindet. Der img-Tag zum Beispiel erwartet den MIME-Typ image/jpeg, image/gif oder ähnliches. Bei <link rel="stylesheet" type="text/css"> erwartet der Browser den MIME-Typ text/css. Da die Datei aber auf .php enden muss, damit sein Code interpretiert wird, hat er den an den Browser geschickten MIME-Type über header() geändert.

    Information will frei verfügbar sein.

    Don't eat unpeeled hedgehogs.

  • So kann das wirklich nicht funktionieren... PHP bitte in der php datei und css in der css datei.

    dann darfst du nach dem header dein php script includen der dir den path zufällig generiert und in einem <style> block dann background-img neu setzen (in der css datei würd ichs auch noch lassen als default...)

    hier mal ein beispiel das ich grad zusammengewürfelt hab.

    CSS:

    Code
    #background {
    background-color: #fff;
    width: 500px;
    height: 500px;
    }

    Damit dürfte alles klar sein oder? *g*

    /p.s.: alles ab <?php bis </style> kannst du auch natürlich in ne andere datei auslagern ;)

    3 Mal editiert, zuletzt von Grevas (26. Juni 2009 um 11:16)

  • hey,


    habe es nun so gelöst:
    css.php



    in meiner index.php:

    <link rel="stylesheet" href="css.php" type="text/css">


    kann ich das so belassen, ist es korrekt ?
    also funktionieren tut es...

    lg

  • Also wie schon gesagt bekommst du das alt-Element nicht in das Background-Image.
    Aber ich habe gerade mal eine Suchmaschine dazu angeschmissen und das hier als Alternative gefunden.

    Code
    <div id="xxx" title="Alternativtext"></div>