Homer: Stylesheet per PHP einbinden

Náaaabend alle,

Ich möchte per PHP auf bestimmten Seiten ein bestimmtes Teil eines Stylesheet überschreiben. Dazu schreibe ich in HTML folgendes in den Header:

<?php if (($css_name == 'foo')) { print '<style type="text/css"><!-- #box {background-image: url(../bilder/foo.jpg)} --></style>';}?>

Dieses Stylesheet überschreibt ein Attribut im "Mutter" Stylesheet und soll entsprechend eine Grafik anzeigen.

Der Code wird generiert nur wird keine Grafik angezeigt ?!

Aber jetzt wo ich das hier schreibe kommt mir selbst ein Idee, muss ich etwa absolute Pfade angeben ? Aber warum ?

Grüße
Homer

  1. Aber jetzt wo ich das hier schreibe kommt mir selbst ein Idee, muss ich etwa absolute Pfade angeben ? Aber warum ?

    Müssen musst du nicht, aber es ist in aller Regel weniger Quelle von Fehlern.

    Welche Art von Fehler vorliegt, prüfst du mit einem Tool wie Live-HTTP-Headers oder ähnlich.

    mfg Beat

    --
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    Der Valigator leibt diese Fische
  2. Also mit den absoluten Pfaden funktioniert es, nur mag ich eigentlich keine absoluten Pfade ;) Jemand ein Tipp für mich ?

    lg
    Homer

  3. 'ǝɯɐu$ ıɥ

    Aber jetzt wo ich das hier schreibe kommt mir selbst ein Idee, muss ich etwa absolute Pfade angeben ? Aber warum ?

    Nö, aber du musst das Bild von der Datei aus relativ referenzieren in der du die Anweisung schreibst. Liegt deine CSS-Datei in einem Unterverzeichnis und du hast den Pfad einfach übernommen?

    ssnɹƃ
    ʍopɐɥs

    --
    I like children. If they're properly cooked.
    - W.C. Fields
    1. 'ǝɯɐu$ ıɥ

      Aber jetzt wo ich das hier schreibe kommt mir selbst ein Idee, muss ich etwa absolute Pfade angeben ? Aber warum ?

      Nö, aber du musst das Bild von der Datei aus relativ referenzieren in der du die Anweisung schreibst. Liegt deine CSS-Datei in einem Unterverzeichnis und du hast den Pfad einfach übernommen?

      ssnɹƃ
      ʍopɐɥs

      ARGHHHHHH Bin ich ein Depp !! Du hast so recht! Ich schäme mich! ;)

      DANKE
      Homer

  4. @@Homer:

    nuqneH

    Náaaabend alle,

    Ich möchte per PHP auf bestimmten Seiten ein bestimmtes Teil eines Stylesheet überschreiben. Dazu schreibe ich in HTML folgendes in den Header:

    <?php if (($css_name == 'foo')) { print '<style type="text/css"><!-- #box {background-image: url(../bilder/foo.jpg)} --></style>';}?>

    Was soll die völlig überflüssige HTML-Auskommentierung von CSS-Code?

    Und sinnvoller dürfte sein, Programmlogik und Darstellung voneinander zu trennen; also per PHP keine zusätzlichen Stylesheets einzubinden (was man aus Performanzgründen sowieso vermeiden sollte), sondern Klassen zu setzen und die Formatierung dafür im Stylesheet zu notieren:

    Markup: <div id="box" <?php [code lang=php]if ($css_name == 'foo') echo 'class="foo"'; ?>>[/code]

    Stylesheet: #box.foo {background-image: url(../bilder/foo.jpg)}

    Oder derart:

    Markup: <body <?php [code lang=php]if ($css_name == 'foo') echo 'class="foo"'; ?>>[/code]

    Stylesheet: .foo #box {background-image: url(../bilder/foo.jpg)}

    Qapla'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)
    1. Was soll die völlig überflüssige HTML-Auskommentierung von CSS-Code?

      Berechtigte Frage: die Kommentare sind (bei den heutigen Browsern) nicht nötig und wurden entfernt. Danke für die Anmerkung!

      Und sinnvoller dürfte sein, Programmlogik und Darstellung voneinander zu trennen; also per PHP keine zusätzlichen Stylesheets einzubinden (was man aus Performanzgründen sowieso vermeiden sollte), sondern Klassen zu setzen und die Formatierung dafür im Stylesheet zu notieren:

      Mag für die Masse 100% stimmen, wobei eine so kleine PHP Anweisung kaum merkliche Perfomanceeinbußen mitbringt! In diesem Fall kann der User verschiedende Styles (über ein PHP Styleswitcher)auswählen und nur bei einem bestimmten Style soll hier eine bestimmte Grafik angezeigt werden

      Qapla'

      Gesundheit ;)

      Grüße
      Homer

      1. @@homer:

        nuqneH

        wobei eine so kleine PHP Anweisung kaum merkliche Perfomanceeinbußen mitbringt!

        Es ging auch nicht um die PHP-Anweisung*. Die hatte ich schließlich auch (nur an anderer Stelle).

        Es ging um das zusätzliche Stylesheet: zusätzlicher HTTP-Request, zusätzlicher HTTP-Response. Das kostet Zeit. Deshalb: HTTP-Abfragen reduzieren! [PERFORMANCE-BP1]

        Qapla'

        * mit Bindestrich, nicht mit Deppenleerzeichen

        --
        Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
        (Mark Twain)
        1. @@homer:

          nuqneH

          wobei eine so kleine PHP Anweisung kaum merkliche Perfomanceeinbußen mitbringt!

          Es ging auch nicht um die PHP-Anweisung*. Die hatte ich schließlich auch (nur an anderer Stelle).

          Es ging um das zusätzliche Stylesheet: zusätzlicher HTTP-Request, zusätzlicher HTTP-Response. Das kostet Zeit. Deshalb: HTTP-Abfragen reduzieren! [PERFORMANCE-BP1]

          Qapla'

          * mit Bindestrich, nicht mit Deppenleerzeichen

          Servus,

          ich weiß ja nicht ob gerade DU andere in Ihrer Orthographie verbessert solltest? Immerhin schreibst Du Deine Grundformeln in einer Kunstsprache. Das kommt subjektiv ein wenig anmaßend daher...

          Trotzdem vielen Dank für den Link, jetzt verstehe ich endlich was Du meinst!

          `oy´ DaSIQjaj!

          Homer

          1. Hi,

            ich weiß ja nicht ob gerade DU andere in Ihrer Orthographie verbessert solltest? Immerhin schreibst Du Deine Grundformeln in einer Kunstsprache. Das kommt subjektiv ein wenig anmaßend daher...

            Warum - weil er sich sogar in zwei Sprachen ausdrücken kann, obwohl das die Frager oftmals nicht mal in einer schaffen?

            MfG ChrisB

            --
            The most exciting phrase to hear in science, the one that heralds new discoveries, is not “Eureka!” but “That's funny...” [Isaac Asimov]
            1. Hi,

              Warum - weil er sich sogar in zwei Sprachen ausdrücken kann, obwohl das die Frager oftmals nicht mal in einer schaffen?

              Hi,

              sorry Klingonisch ist KEINE Sprache ;)

              Grüße
              Homer

    2. Hallo.

      Was soll die völlig überflüssige HTML-Auskommentierung von CSS-Code?

      Die ist nicht nur überflüssig. Sie verhindert auch, sich den Code mittels head, head style { display: block; } head * { display: none; } direkt auf der Seite ausgeben zu lassen. -- Jetzt muss ich nur noch herausfinden, wofür man das wollen könnte.
      MfG, at