WBCE und CSS-Frameworks
Im Forum liest man das immer wieder mal: „Warum integriert ihr nicht Framework SoUndSo in WBCE?“
Warum WBCE (k)ein Problem mit CSS-Frameworks wie zB. Bootstrap hat.
CSS-Frameworks sind im Kern StyleSheets mit vordefinierten Klassen, etwa .table {..}, was dafür sorgt, dass eine Tabelle mit dieser Klasse gleich mal gut aussieht. Häufig gibt es dazu noch jQuery-Funktionen, die so eine <table class=“table sortabletable toggle-tr“> sortierbar machen oder die Zeilen abwechseln einfärben.
Das klingt praktisch - und ist es auch.
WBCE legt auch keine Steine in den Weg: Jeder kann jedes Framework in seinem Template verwenden. Im Template - denn alle Gestaltung erfolgt im Template. WBCE selbst gibt keinerlei Gestaltung vor.
Das ist auch richtig so, denn WBCE soll es auch noch geben, wenn sich die Trends ändern.
Das Grundproblem bei CSS-Frameworks:
Der klassische Weg: HTML = Struktur+Inhalt, CSS = Darstellung.
zb: Das ist der Hauptinhalt (Struktur) und daher class="maincontent" - und nur im CSS sage ich dann, ob links oder rechts oder wie breit. Im HTML muss ich nichts mehr ändern, um die Darstellung zu beeinflussen.
CSS Frameworks hebeln den Gedanken dieser Trennung von CSS und HTML aus. Mit Frameworks vermischt man Struktur, Darstellung und Inhalt dadurch, dass man bestimmte Klassen verwendet, um eine Darstellung zu erreichen.
Ich sage also: Dieser Inhalt hat class="mc2 h12 x4" - um damit die Gestaltung vorzugeben. Wenn ich eine andere Gestaltung wünsche, ändere ich nicht das CSS - sondern das HTML.
Dadurch verlagere ich die Gestaltung weg vom Template hin zu den Modulen.
Der Knackpunkt: die Module
Jede Ausgabe erfolgt durch Module. Ein Modul sollte möglichst sauberes und universell nutzbares HTML ausgeben. Für die nötige Gestaltung ist die frontend.css des Moduls gemeinsam mit dem CSS des Templates zuständig.
Sobald man ein CSS Framework verwendet, muss man die Ausgabe der Module ändern, wenn man eine andere Darstellung wünscht. Und das nicht im fehlertoleraten CSS, sondern im viel heikleren HTML.
Bei den meisten Modulen lässt sich sehr viel einstellen, aber eben nicht alles. Ein Modul von Haus aus so zu machen, dass es (zusätzlich) ein bestimmtes Framework unterstützt, ist politisch nicht machbar; es kommt zu keiner Einigung. Bootstrap-Fans gegen Bootstrap-Hasser und ungefähr 7000 Alternativen. Das wird nichts.