Tach!
Ich habe eigentlich keine Erfahrung mit bootstrap. Es würde mich deshalb eher interessieren, worin denn genau die Gefahren oder Tücken von bootstrap im allgemeinen und speziellen liegen.
Mal ketzerisch zusammengefasst: Es ist das gleiche wie bei einem Hammer. Man kann damit Nägel einschlagen, aber auch Köpfe und auf den eigenen Daumen. Beim Runterfallen können auch noch Fliesen und Zehen kaputtgehen. Andererseits geht bei Verwendung von Bootstrap nicht wirklich was kaputt. Im schlimmsten Fall hat man eine Website mit Verbesserungspotential.
Bootstrap ist eine Sammlung von CSS, organisiert hauptsächlich in Klassen. Aber auch grundlegendes CSS für eine durchgehende Typographie, das direkt auf den Elementen aufsetzt, beispielsweise h(1-6) oder ul/li. Dazu gibt es eine Dokumentation mit Vorschlägen, wie man HTML-Elemente zusammen mit diesen Klassen verwenden kann. Die Klassen sind so allgemein gehalten, dass sie nicht nur mit bestimmten Elementen zusammenarbeiten. Ob man eine div-Suppe erstellt oder alle Möglichkeiten von HTML5 zur Strukturierung verwendet, ist keine Vorgabe von Bootstrap. Allerdings sind die Beispiele meist auf divs aufgebaut, solange nicht eindeutig ein HTML-Element für eine bestimmte Aufgabe genommen werden kann. Soll heißen, Tabellen und Listen sind schon mit table und ul/ol/li ausgezeichnet, aber da wo man je nach letztendlichem Kontext zwischen section, footer, aside und so weiter wählen kann, ergibt es nicht viel Sinn, eine allgemeingehaltene Dokumentation mit diesen speziellen Elementen statt neutralen divs vorzubelegen. Am Ende sind nicht wenige Anwender eh nicht in der Lage an dem kopierten Beispiel-Code sinnvolle Änderungen vorzunehmen. Da finde ich es auch besser, allgemein passende divs im Ergebnis zu haben, als kaum passende Spezialelemente.
Eine der "Gefahren oder Tücken" ist also, dass die Anwender nicht genügend nachdenken oder HTML-Wissen haben, vielleicht auch zu ängstlich sind, etwas kaputt zu machen, um die in den Beispielen verwendeten divs durch für ihren Anwendungsfall geeignetere Elemente zu ersetzen.
Ein wesentlicher Bestandteil von Bootstrap ist das 12-Spalten-Grid-System, das auch responsibel ist. Bisher mit herkömmlicher Float-Technik realisiert, mittlerweile auch mit den Möglichkeiten moderner Browser mitgehend. Das sorgt dafür, dass man recht unkompliziert den Elementen der Webseite eine einheitliche Ausrichtung und Größe geben kann, und das auch für unterschiedliche Viewportgrößen. Es nimmt einem aber nicht die generelle Arbeit ab, sich über Positionen, Größen und Anordnungen auf unterschiedlich großen Viewports Gedanken zu machen.
Weiterhin gibt es Komponenten für eine ganze Reihe von Bedienelementen, die so direkt nicht in HTML zu finden sind. Die Komponenten brauchen teilweise Javascript für ihre volle Funktionalität.
Nun hat man bei einem allgemeinen Framework das Problem, dass man den Kontext beim Anwender nicht kennt. Aber wie soll man Bezeichnern eine Semantik verleihen, wenn man von dieser Bedeutung beim individuellen Verwender keine Kenntnis hat? Bei Farben ist das noch einigermaßen möglich, wenn man sich auf allgemein übliche Verwendung bezieht, wie Rot = Gefahr. Für andere Formatierelemente hat man dann Klassennamen, die diese optischen Auswirkungen repräsentieren, das so genannte präsentationsbezogene Markup.
Das ist also eine weitere "Gefahr oder Tücke", oder jedenfalls wird es gern als Kritikpunkt aufgezählt. So richtig nachvollziehen kann ich das nicht. Am Ende haben HTML-Elemente auch nur für sich eine Semantik, und die eigentliche Semantik des Anwendungsfalls geht darin auch weitgehend verloren. Eine Liste mit Links unterscheidet sich zum Beispiel nicht von einer Liste mit Mitarbeiternamen. Die Liste ist aus Sicht der Anwendung auch nur ein präsentationsbezogenes Element.
Es gibt auch noch eine Menge andere Dinge in und um Bootstrap herum, die ich nicht weiter thematisieren kann, weil ich noch keinen Bedarf hatte, mich damit zu beschäftigen.
dedlfix.