Warum Standards wichtig sind
<table> kommt in 2 typischen Formen vor: Als gescholtene Layout-Tabelle (ohne die es das www nicht gäbe) und eben als Datentabelle:
Jahr | Buh-Rufe | Likes | Beliebtheit |
---|---|---|---|
2013 | 3 | 1 | -2 |
2014 | 12 | 4 | -8 |
So erzeugt mir das der Editor.
Ich als Template-Designer möchte natürlich auch die Tabellen im CSS schön formatieren, zb mit Linien und helleren Reihen bei Mouseover.
Dazu kann ich direkt auf table {} und table tr {} zugreifen. Schön!
Jahr | Buh-Rufe | Likes | Beliebtheit |
---|---|---|---|
2013 | 3 | 1 | -2 |
2014 | 12 | 4 | -8 |
Jetzt habe ich aber ein Problem: Es gibt ja auch noch die Layout-Tabellen, die jetzt ebenso mehr oder weniger "schön" aussehen, obwohl sie vorher wenigstens nicht auffielen. Diese kommen in allen möglichen Modulen vor, oft auch weil es anders nicht ging. Nicht schön!
Ich als Modul-Entwickler bastle zb ein Modul CSV2Table, das ganz einfach lange Datentabellen erzeugt. Irgendwann muss ich mir Gedanken darüber machen, wie denn das Ganze aussehen soll, also schau ich es mir das in meinem Lieblingstemplate "RedBlackBetty" an, und finde, dass rosa Linien und gelb hervorgehobene Reihen cool aussehen.
Damit das nur für mein Modul gilt und sich nicht mit anderen schlägt, gebe ich der Tabelle die class="csv2table" und gestalte diese entsprechend in der frontend.css
Ich als armer Anwender mag das Template "GreenSpotz" gerne, weil es so schöne zartorange Tabellenlinien macht - und das Modul CSV2Table ist super, aber: Wie bekomme ich die die rosa Linien weg? Und warum sind die zartorangen Linien auch im Kontaktformular?
Einfach bleiben!
Man könnte allen Modulentwicklern vorschreiben, dass sie keine Layout-Tabellen verwenden dürfen. Das geht schlichtweg nicht. Genausowenig kann ich dem Anwender vorschreiben, dass er einen CSS Kurs machen soll. Aber ich kann den Modul-Entwickler und dem Template-Designer eine Richtlinie geben.
Was hat Bootstrap damit zu tun?
Letztendlich muss ich also sagen: Gebt einer Datentabelle eine bestimmte Class mit. Jetzt brauchen wir also nur noch eine Empfehlung, wie diese Class heißen soll. "herbert"? "wb_table"? "kevin2002"?
Bootstrap ist ein recht gängiges Framework – und statt eine Arbeitsgruppe zur Findung der Class für Tabellen zu bilden, kann ich ins Bootstrap-Handbuch schauen und werde sehen: die Class heißt dort - TaTa! - "table"! Wie originell!
Ganz originell sagen wir dem Template-Entwickler: Bitte gestalte nur
table.table {...} bzw table.table tr {...}
Und wenn du Bootstrap pur verwendest, dann tu gar nichts, weil das steht ja ohnehin schon im Bootstrap Framework.
Dem Modulentwickler sagen wir: Bitte verwende bei Datentabellen
<table class="table meinmodul-dings"> und bei Layout-Tabellen eben irgendwas, aber nie class="table"
Leider nicht ganz so einfach
Manchmal ist die Welt noch origineller als wir – und vor allem: Älter. Und hält sich nicht immer an alles, was wir uns ausdenken. Und selbst wenn: Was tun wir in der Übergangsphase?
Ein Hauptproblem ist, dass höherwertige CSS-Anweisungen stärker sind, was vor allem Fallback-Lösungen schwierig macht. Man könnte sich alle möglichen Konstrukte überlegen, die aber dann wieder so kompliziert sind, dass sich niemand daran hält. Daran kann jeder Standard scheitern.
Letztlich wird man sagen müssen: Halte dich an vereinbarte Standards oder dein Modul wird Ärger machen. Oder dein Template wird nicht gut aussehen.
Du musst nicht – du kannst.
Neuere Themen:

In alter Tradition: Nur unter der Haube

Dauernd und gerne

Ein konkretes Beispiel, das die Sache verständlicher macht
