Stylesheet per PHP einbinden
Homer
- php
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
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
Also mit den absoluten Pfaden funktioniert es, nur mag ich eigentlich keine absoluten Pfade ;) Jemand ein Tipp für mich ?
lg
Homer
'ǝɯɐ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
'ǝɯɐ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
@@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'
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
@@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
@@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
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
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
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