Hi NoLabel,
Ist es sinnvoll eine vorhandene externe CSS-Datei mit Styles zu erweitern, die nur dann und wann benötigt werden, oder sollte man die zusätzlichen dann lieber in den head-Teil der entsprechenden HTML-Seite setzen?
Ich frage wegen Ladezeiten, oder fallen 50 Zeilen Quellcode in einer immer wieder ladenden CSS-Datei zu unwesentlich ins Gewicht als das man sich da Gedanken drüber machen sollte?
wenn ich ein HTML-Dokument in meine site einbaue, dann muß ich mir zunächst einmal Gedanken darüber machen, wohin damit. Dies hängt für mich wesentlich davon ab, ob das Dokument in struktureller Hinsicht ein Unikat ist oder zu einer Sorte von Dokumenten gehört.
Und wenn ich diese Frage entscheiden kann, dann kann ich diese Erkenntnis für die CSS-Formatierung mit verwenden: Unikate haben bei mir CSS im HTML-Dokument drin, Sorten-Dokumente importieren externes CSS. Wobei alle Dokumente in gewisser Weise zur Sorte "meine Dokumente" gehören und eine gewisse Grundformatierung, die in allen bzw. sehr vielen Dokumenten benötigt wird, immer importieren. Zusätzliche Formatierungen, die nur für eine bestimmte Sorte von Dokumenten verwendet wird, kommt in eine CSS-Datei dieser Dokument-Sorte - und falls es innerhalb der Dokument-Sorte noch eine Untergruppierung geben sollte, kann auch diese wiederum eine eigene CSS-Datei rechtfertigen.
Bei meinen Dokumenten kann es also vorkommen, daß ein Dokument sowohl mehrere (etwa 2-3) CSS-Dateien importiert als auch lokale CSS-Definitionen im Dokument selbst besitzt.
Ich versuche, mich dabei von der Idee einer entsprechenden Informations-Kapselung leiten zu lassen: Jede Formatierung wird so global wie nötig, aber so lokal wie möglich definiert - Duplikate von CSS-Code sind zu vermeiden, wenn sie durch die Überlagerung mehrerer CSS-Dateien ersetzt werden können.
Der Preis, den ich dafür zahle, ist, daß ich nur unter erheblichem Zusatzaufwand meine CSS-Definitionen warnungsfrei validiert bekomme. Denn ich verwende innerhalb einer "Sorte" oftmals inkrementelle Überlagerungen bestimmter Definitionen - und das mag der CSS-Validator nicht, weil er mir nicht glaubt, daß ich weiß, was ich tue.
Ich wollte, ich könnte in CSS ausdrücken: "Ja doch, ich weiß, daß ich hier eine globale Dokumentation überschreibe, aber genau das ist doch der Sinn von kaskadierenden Definitionen, also vertrau mir einfach ...".
Ich könnte dies vermeiden, indem ich für jede zusätzliche Formatierung lokale Klassen einführe ... aber das würde meinen HTML-Code unnötig aufblähen. Also lebe ich mit den CSS-Validator-Warnungen und habe dafür eine minimale und redundanzfreie Informationsrepräsentation - das reicht mir so.
Ach ja: CSS-Code innerhalb von HTML-Dateien kann gefahrlos zusammen mit dem HTML-Code in komprimierter Form ausgeliefert werden, während eine komprimierte Auslieferung von separaten CSS-Dateien immerhin Netscape 4 völlig überfordert.
Falls Du also um die Größe Deiner Dateien besorgt bist, denke über Komprimierung nach ... und über "aggressives" Browser-Caching, das Du durch Mitliefern entsprechender HTTP-Header fördern kannst.
Viele Grüße
Michael
T'Pol: I apologize if I acted inappropriately.
V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.