Hallo,
In meiner CSS Datei steht immer nur das was auch benötigt wird und bei größeren Projekten, wird der CSS-Code nicht ellenlang und unnötig groß.
Sprich die Seite wird schneller geladen.
Wie schon einige hier gepostet haben: CSS dynamisch zusammenzubauen ist vielleicht nicht ideal, auch Deine Einschätzung bezgl. Ladezeit würde ich nicht 100%tig teilen:
Eine CSS-Datei(!) mag zwar zeimlich lang sein, sie ist aber dafür cachebar im Browser. Der User läd sie also nur einmal und dann nicht mehr (sofern er seinen Browser entsprechend konfiguriert hat).
Wenn Dein CSS hingegen dynamisch zusammengebaut wird, besteht die Gefahr, dass der User das jedesmal von neuem läd.
Generell fallen ASCII-Datein größentechnisch ohnehin nicht mehr so ins Gewicht, weil die meisten Webserver mit mod_gzip/mod_deflate ausliefern.
Ein weiterer Punkt: Gerade bei größeren Systemen (und wenn Du Dir über die Ladezeiten von CSS-Dateien Gedanken machst, gehe ich davon aus, dass Du das zumindest in Erwägung ziehst) wird strikt getrennt zwischen Applikation/Business-Logik und (statischem) Content (gewissermaßen wird also der MVC-Ansatz dann auch ein Stück weit in Hardware vollzogen).
Man stelle sich z.b. eine Webanwendung vor, bei denen die ganze Logik auf einem Application-Server läuft, während statischer Content (css, Bilder, statische HTML-Seiten wie z.b. für Hilfe o.ä.,...) über einen (oder mehrere) schnelle Webserver oder sogar ein Media-Distributio-Network passiert.
Auch dafür ist es praktisch, CSS und PHP zu trennen.
=> Ich würde Deinen Ansatz vielleicht so ändern/erweitern, dass
Du ein paar wenige CSS-Files hast, und ein View immer "weiß", welche CSS-Datei er einbinden muss, damit alles korrekt geladen wird - z.b. eine "general.css" die Styles beschreibt, die IMMER benötigt werden (menu, Header, Footer,...) und weitere Dateien, die dann auf die jeweiligen Views zugeschnitten sind.
Jedenfalls spannendes thema, dass Du da aufgemacht hast.
Hope that helps,
Jörg