mehrere CSS-Dateien vs. dynamisches CSS mit PHP
Eddie
- css
0 Lutz0 KD-one0 Eddie0 KD-one0 Ingo Turski
Hallo allerseits,
meine CSS-Datei ist mittlerweile 24 KB groß und hat über 1000 Zeilen. Keine Ahnung, ob das normal ist...
Wie auch immer, ich wuerde sie gerne zergliedern, vor allem weil ein Großteil des Codes für normale Besucher irrelevant ist und nur für registrierte Mitglieder benötigt wird.
Folgende Methoden schweben mir vor:
a) myCss.php?sprache=DE&modus=MITGLIED
Also Sprachwahl (wirkt sich auf's Design aus) und Moduswahl dynamisch.
b) immerNoetig.css + oeffentlich.css
ODER
immerNoetig.css + mitglied.css
Die erste (dynamische) Variante waere mir lieber. Nur:
wenn da ein Fragezeichen dahinter steht, wird dann myCss.php?sprache=DE jedes Mal neu geladen?
Was haltet ihr davon?
Danke für eure Hilfe,
Eddie
Hallo Eddie,
meine CSS-Datei ist mittlerweile 24 KB groß und hat über 1000 Zeilen. Keine Ahnung, ob das normal ist...
vornweg: Ich finde die Grösse Deiner CSS-Datei nicht bedrohlich. Da Du die Style-Angaben ja sinnvollerweise in eine externe Datei auslagerst, werden sie nur einmal zum Benutzer übertragen und dort im Cache gehalten.
Allerdings kannst Du die CSS-Angaben evtl. noch etwas optimieren. Wenn Du auf 24kB kommst, hast Du unter Umständen sämtliche Formatierungen für alle Tags wiederholt. Beachte, dass bei Verschachtelungen die inneren (Kinder) Elemente von den Äusseren (Eltern) die Formatangaben erben.
Auch kannst Du mehrere Tags gemeinsam formatieren.
p, td, #markierung { font-size: 12pt; color:#000000; }
und ihnen dann einzeln noch spezifische Zusatzeigenschaften verpassen.
p { font-weight: bold; }
Folgende Methoden schweben mir vor:
a) myCss.php?sprache=DE&modus=MITGLIED
Also Sprachwahl (wirkt sich auf's Design aus) und Moduswahl dynamisch.
b) immerNoetig.css + oeffentlich.css
ODER
immerNoetig.css + mitglied.css
Um auf Deine Frage zurückzukommen: Ich würde (und mache das auch so) mehrere CSS-Dateien verwenden. Da Dein Script, wie Du sagst nicht gecached wird, erweist Du dem Besucher und Dir einen Bärendienst.
Gruss,
Lutz
Hi Eddie,
Ich versteh nicht, was du meinst und ich denke, das geht anderen genauso.
Ich würde es in etwa so lösen (ungetestet):
<? php
if(isset($_GET['sprache'])) {
switch($_GET['sprache']) {
case de:
$lang = 'deutsch';
break;
case en:
$lang = 'english';
break;
default:
$lang = 'standard';
}
} else {
$lang = 'standard';
}
if(isset($_GET['modus']) && ($_GET['modus'] == "MITGLIED")) {
$mod = 'mitglied';
} else {
$mod = 'ohneglied';
}
echo = "<link rel='stylesheet' type='text/css' href='pfad/".$lang.".css'>";
echo = "<link rel='stylesheet' type='text/css' href='pfad/".$mod.".css'>";
?>
Ob das allerdings der Weisheit letzter Schluss ist, kann ich nicht beurteilen, da ich noch viel zu wenig über PHP und seine Möglichkeiten weiss.
Gruß
Kurt
Hallo Kurt,
Ich versteh nicht, was du meinst und ich denke, das geht anderen genauso.
Das hast Du schon ganz gut verstanden.
Nur soll zum Schluss anstelle von
<link rel='stylesheet' type='text/css' href='pfad/deutsch.css'>
<link rel='stylesheet' type='text/css' href='pfad/sprachen.css.php?l=de'>
stehen.
Die CSS-Datei ist also eigentlich ein PHP-Script. Ich will halt meine 1001 Zeilen nicht in zwei Versionen für jede Sprache bereithalten, da waer mir der Aufwand zu groß.
Funktionieren tut's (Mozilla erwartet einen speziellen CSS-Header), nur hat Lutz vielleicht recht mit dem "Bärendienst".
Vielleicht mache ich es jetzt so, dass ich nur die paar wenigen dynamischen CSS-Werte in ein PHP-Script ausgliedere, das dann immer geladen werden muss. Und die anderen CSS-Anweisungen dann in entsprechende Dateien, also
dynamisch.css.php
immerNoetig.css
oeffentlich.css
mitglied.css
die ich dann dem Kontext entsprechend anfordere.
Was haltet ihr davon?
Danke, Eddie
Hi Eddie,
[...]
Vielleicht mache ich es jetzt so, dass ich nur die paar wenigen dynamischen CSS-Werte in ein PHP-Script ausgliedere, das dann immer geladen werden muss. Und die anderen CSS-Anweisungen dann in entsprechende Dateien, also
dynamisch.css.php
immerNoetig.css
oeffentlich.css
mitglied.css
die ich dann dem Kontext entsprechend anfordere.Was haltet ihr davon?
Dazu kann ich wenig sagen, da ich, wie ich im vorherigen Posting bereits bemerkte, zuwenig Kenntnisse über PHP habe.
Wenn`s funktioniert und keine Einschränkung darstellt, warum nicht?
Eine derartige Lösung ist mir allerdings völlig neu, aber man lernt ja nie aus. :-)
Gruß
Kurt
Hi,
Vielleicht mache ich es jetzt so, dass ich nur die paar wenigen dynamischen CSS-Werte in ein PHP-Script ausgliedere, das dann immer geladen werden muss. Und die anderen CSS-Anweisungen dann in entsprechende Dateien, also
dynamisch.css.php
immerNoetig.css
oeffentlich.css
mitglied.css
macht m.E. wenig Sinn, wenn die dynamische Datei stets neu geschrieben und damit neu übertragen werden sollte.
Da würde ich eher die dynamischen Styles direkt in den Head der html-Datei schreiben - spart eine Anforderung.
freundliche Grüße
Ingo