Eins, Zwei oder Drei

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

So viele CSS-Dateien sollten auf jeder Website geladen werden.

Eins

  • Eine Einzelseiten-Website.
  • Eine ziemlich einfache Website mit nur ein paar Seiten, die sich nicht allzu sehr unterscheiden.
  • Ein Blog oder eine blogähnliche Website, bei der auch wenn es Tausende von Seiten und Taxonomien gibt, diese größtenteils gleich aussehen.
Offensichtlich benötigt eine Einzelseiten-Website nur eine einzige CSS-Datei. Alles mehr wäre für Sie, nicht für die Website.
Eine Website mit nur wenigen Seiten benötigt wahrscheinlich nur eine einzige CSS-Datei. Selbst wenn sie ein paar Seiten mit unterschiedlichen Vorlagen hat, solange diese Vorlagen ziemlich ähnlich sind, können sie alle zusammengefügt werden.
Selbst Websites mit Hunderten oder Tausenden von Seiten können oft mit einer einzigen CSS-Datei auskommen, wenn die Seiten größtenteils gleich sind. Selbst wenn es verschiedene Taxonomien gibt, wie bei einem typischen Blog.

Zwei

  • Eine Web-App mit einem globalen Satz von Designmustern und dann seltener verwendeten Designmustern in verschiedenen Bereichen der Website.
  • Inhaltsschwere Website mit einer globalen Struktur, einem Raster und Typografie und dann zusätzlicher CSS-Ladung für bestimmte Bereiche der Website, die mehr benötigen.
  • Websites, bei denen jede Seite sehr einzigartig ist (globale und seitenspezifische CSS).
  • Die meisten Websites.
Eine Web-App mit verschiedenen, eher "isolierte" Bereichen benötigt wahrscheinlich zwei CSS-Dateien. Eine globale mit den gängigsten Designmustern und dann eine Bereich-spezifische CSS-Datei mit den selteneren Designmustern, die dieser Bereich benötigt.
Websites mit vielen stark unterschiedlichen Seitenstilen benötigen wahrscheinlich zwei Stylesheets. Eine globale (es gibt wahrscheinlich **einige** gemeinsame Elemente) und eine CSS-Datei, die spezifisch für die einzigartigen Seiten ist.

Drei

  • Sehr komplexe Websites, die globale CSS, bereichsspezifische CSS und einmalige Seiten-CSS benötigen.
Websites, die deutliche Bereiche und dann Untervorlagen für diesen Bereich haben, benötigen wahrscheinlich eine globale, eine bereichsspezifische und eine seitenspezifische oder einmalige CSS-Datei.

Ich schlage vor, dass drei die maximale Anzahl von CSS-Dateien ist, die jede Seite benötigt.

Dies ist bereitgestelltes CSS

Wenn ich eins, zwei oder drei sage, spreche ich von CSS-Dateien, die aus dem Kopf von bereitgestellten Websites verlinkt sind. Ich spreche nicht von den CSS-Dateien, die Sie als Entwickler bearbeiten. Dafür sollten Sie in beliebigen modularen Blöcken arbeiten, die für Sie Sinn ergeben. Dann werden diese modularen Blöcke zu den endgültigen bereitgestellten Dateien zusammengefasst. Sie können dies mit Dingen wie der Rails Asset Pipeline tun, einen CSS-Präprozessor verwenden oder mit Apps wie CodeKit.

Zum Beispiel

Global = main.css + grid.css + typography.css + buttons.css + print.css
Website-Bereich A = tabs.css + editor.css
Website-Bereich B = forms.css + video.css + details.css

Was auf dem "Editor"-Teil der Website geladen wird = global.css & site-section-a.css
Was auf dem "Details"-Teil der Website geladen wird = global.css & site-section-b.css

Ist eins nicht immer besser?

Nein. Wenn Sie daran denken, eine seitenspezifische CSS-Datei zu erstellen und die benötigten Teile irgendwie in diese einzelne Datei zu verketten, tun Sie es nicht. Es scheint, als ob eine Anfrage besser ist als drei! Aber dann nutzen Sie den Browser-Cache überhaupt nicht.

Nehmen wir an, Sie befinden sich in einem typischen Zweistyle-Szenario. Während Sie sich in einem bestimmten Bereich einer Website bewegen, müssen alle Seitenaufrufe nach dem ersten keine CSS-Dateien laden, da sie bereits zwischengespeichert sind. Und selbst das Springen in einen neuen Bereich erfordert nur das Laden einer neuen Datei (die globale ist bereits zwischengespeichert).

Wenn Sie für jede Seite eine eigene CSS-Datei erstellen, müssen Benutzer für jede besuchte Seite eine neue Stylesheet anfordern.

OK

Jetzt können Sie mich für die Übervereinfachung trollen. =)