Bootstrap (Framework)

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Bootstrap
Boostrap logo.svg
Eine mit Bootstrap 3 gestaltete Beispielseite in Google Chrome 34
Eine mit Bootstrap 3 gestaltete Beispielseite in Google Chrome 34
Basisdaten
Entwickler Twitter
Erscheinungsjahr 2011[1]
Aktuelle Version 3.3.1 [2]
(12. November 2014[3])
Betriebssystem plattformunabhängig
Programmier­sprache CSS (LESS), JavaScript
Kategorie Webdesign
Lizenz MIT-Lizenz (Code) (vor Version 3.1.0 Apache License 2.0)

CC BY 3.0 (Dokumentation, Icons)

Deutschsprachig nein
getbootstrap.com

Bootstrap ist ein freies und sehr häufig verwendetes CSS-Framework. Es enthält auf HTML und CSS basierende Gestaltungsvorlagen für Typografie, Formulare, Buttons, Tabellen, Grid-System, Navigations- und andere Oberflächengestaltungselemente sowie zusätzliche, optionale JavaScript-Erweiterungen. Es gehört zu den meistgenutzten Projekten beim Open-Source-Hostingdienst GitHub[4][5] und wird unter anderem von der NASA und dem US-amerikanischen Nachrichtensender MSNBC eingesetzt.[6]

Entstehung[Bearbeiten]

Bootstrap ist ursprünglich aus dem Vorhaben entstanden, die internen Analyse- und Verwaltungswerkzeuge von Twitter weiterzuentwickeln. Zu diesem Zeitpunkt wurden in dem Unternehmen unterschiedlichste Bibliotheken für die Oberflächenentwicklung eingesetzt, was zu Inkonsistenz und hohem Wartungsaufwand führte.[1] Um diesen Herausforderungen zu begegnen, wurde der Schwerpunkt des Projekts erweitert:

“[…] a super small group of developers and I got together to design and build a new internal tool and saw an opportunity to do something more. Through that process, we saw ourselves build something much more substantial than another internal tool. Months later, we ended up with an early version of Bootstrap as a way to document and share common design patterns and assets within the company.”

„[…] eine sehr kleine Gruppe von Entwicklern und ich haben sich zusammengesetzt, um ein neues internes Werkzeug zu gestalten und sahen dabei die Möglichkeit, mehr daraus zu machen. Während des Prozesses stellten wir fest, dass wir dabei waren, etwas zu erschaffen, was wesentlich weitreichender war als nur ein weiteres internes Werkzeug. Monate später hielten wir eine frühe Version von Bootstrap in den Händen, welche allgemeine Entwurfsmuster und Erkenntnisse innerhalb der Firma dokumentierte.“

Mark Otto: In seinem persönlichen Blog zur Entwicklung von Bootstrap.[7]

Dabei spielt laut Aussage von Otto die Idee, Designer und Entwickler zusammenzubringen, eine elementare Rolle bei der Entwicklung: „From whiteboarding ideas to coding rough prototypes, collaborating across disciplines is what made Bootstrap successful for internal use at Twitter.“[8], („Vom Skizzieren von Ideen bis hin zur Programmierung grober Prototypen war es die interdisziplinäre Zusammenarbeit, die Bootstrap für die interne Nutzung bei Twitter so erfolgreich gemacht hat“).

Den ersten Einsatz unter realen Bedingungen erfuhr Bootstrap auf Twitters erster Hackweek[Anmerkung 1]. Otto zeigte einigen Kollegen, wie sie die Entwicklung ihrer Projekte mit Hilfe des Toolkits beschleunigen können. Bei der Präsentation der Ergebnisse zeigte sich, dass Dutzende Teams auf das Framework zurückgegriffen hatten. Auf diese Weise trug Bootstrap nicht nur dazu bei, die Entwicklungszeit zu verkürzen, sondern auch ohne Hilfestellung eines dedizierten Designers ein einheitliches Look-and-Feel für die in der Hackweek entstandenen Anwendungen zu erzeugen.[8]

Im August 2011 entschloss sich Twitter, die Ergebnisse der Öffentlichkeit als Open-Source-Projekt zur Verfügung zu stellen.[1] Seitdem hat sich Bootstrap mit fast 27.000 Forks und über 70.000 Beobachtern zu einem der populärsten GitHub-Projekte entwickelt (Stand: September 2014).[4][5]

Eigenschaften[Bearbeiten]

Bootstrap wurde mit Unterstützung für das damals noch relativ junge HTML5 und CSS 3 entwickelt. Da Bootstrap ab Version 3 weder Firefox 3.6 noch den Internet Explorer 7 unterstützt, wird in einem Übergangszeitraum weiterhin auch Version 2 aktualisiert. Der Gewährleistung der Browser-Kompatibilität dient das Konzept der progressiven Verbesserung.[9] Das bedeutet, dass die grundlegenden Informationen der Webseite oder -anwendung für alle Geräte und Browser zugänglich sind, erweiterte Funktionalitäten jedoch nur den Geräten und Browsern zur Verfügung stehen, die diese unterstützen. Deutlich wird dies beispielsweise bei den in CSS 3 eingeführten Eigenschaften für abgerundete Ecken, Farbverläufe und Schatten. Diese werden von Bootstrap trotz der mangelnden Unterstützung durch ältere Webbrowser intensiv eingesetzt. Dabei gewährleistet der semantische Einsatz von HTML und die Implementierung von alternativen Stildefinitionen in den Stylesheets, dass die Informationen und Funktionen der Webseite trotz der fehlenden Funktionalitäten bei älteren Browsern zur Verfügung stehen. Gleiches gilt für die mitgelieferten JavaScript-Komponenten. Diese erweitern den Funktionsumfang des Toolkits, sind jedoch keine Voraussetzung für dessen Einsatz.

Seit Version 2.0 unterstützt Bootstrap zudem die Gestaltung im Sinne des Responsive Webdesigns.[6][9] Das bedeutet, der grafische Aufbau von Webseiten erfolgt dynamisch und unter Berücksichtigung der Eigenschaften, die das verwendete Gerät (PC, Tablet, Mobiltelefon) mit sich bringt. So passen sich angeordnete Elemente automatisch der Bildschirmauflösung bzw. Fenstergröße an.

Bootstrap wird als Open-Source-Bibliothek angeboten und auf GitHub bereitgestellt. Entwickler sind aufgerufen, sich an dem Projekt zu beteiligen, und können auf der Plattform eigene Beiträge leisten.

Aufbau und Funktionsweise[Bearbeiten]

Bootstrap ist modular aufgebaut und besteht im Kern aus LESS-Stylesheets, welche die einzelnen Komponenten des Frameworks beinhalten. Diese Einzelkomponenten werden von einer zentralen bootstrap-Datei zusammengeführt[10] Durch diesen Aufbau kann der Entwickler durch Anpassung der bootstrap-Datei selbst entscheiden, welche Komponenten in seinem Projekt verwendet werden.

Anpassungen sind in eingeschränktem Umfang über ein zentrales Konfigurationsstylesheet möglich. Darin werden unter anderem Angaben zu Schriftart und -größe, Farbe oder den Aufbau des Grid-Layouts gesetzt.[11] Tiefgreifendere Änderungen sind möglich, indem die LESS-Deklarationen von Bootstrap überschrieben werden.

Seit der Version 2.0 ist die Konfiguration von Bootstrap auch über eine spezielle „Customize“-Option in der Dokumentation möglich. Dabei wählt der Entwickler über ein Formular die gewünschten Komponenten und passt ggf. die Werte verschiedener Optionen seinen Bedürfnissen an. Das anschließend erzeugte Paket enthält bereits das fertig kompilierte CSS-Stylesheet.[12]

Grundgerüst: Grid-System und Responsive Webdesign[Bearbeiten]

Bootstrap wird standardmäßig mit einem 940 Pixel breiten, zwölfspaltigen Grid-Layout ausgeliefert. Alternativ kann der Entwickler auch ein Layout mit variabler Breite verwenden. Für beide Fälle bietet das Toolkit vier Variationen im Sinne des Responsive Webdesigns an, welche verschiedene Auflösungen und Gerätetypen bedienen: Mobiltelefone, hoch- und querformatige Tablets, sowie PCs mit geringer und hoher (Widescreen-)Auflösung. Dabei passt sich die Breite der Spalten automatisch der zur Verfügung stehenden Fensterbreite an.[13]

Über das Konfigurationsstylesheet hat der Entwickler die Möglichkeit, die Anzahl und Breite der Spalten, den Abstand zwischen den Spalten sowie die Gesamtbreite des Layouts seinen Vorstellungen anzupassen.[11]

Grundlegendes CSS-Stylesheet[Bearbeiten]

Bootstrap enthält eine Reihe von Stylesheets, welche grundlegende Stildefinitionen für alle wichtigen HTML-Komponenten enthalten. Diese gewährleisten ein browser- und systemübergreifend einheitliches, modernes Erscheinungsbild für die Textformatierung, Tabellen und Formularelemente.[14] Der Entwickler profitiert dabei von den Erfahrungen, die bei der Entwicklung und Gestaltung von Twitter gemacht wurden und kann auf praxiserprobte Gestaltungsentscheidungen und bewährte Entwurfsmuster der Frontendgestaltung zurückgreifen.[15][16]

Wiederverwendbare Komponenten[Bearbeiten]

Ergänzend zu den regulären HTML-Elementen enthält Bootstrap weitere, häufig verwendete Oberflächenelemente. Hierzu gehören unter anderem Buttons mit erweiterter Funktionalität (bspw. Gruppierung von Buttons oder Buttons mit Dropdown-Möglichkeit), Navigationselemente (Navigationslisten und -leisten, horizontale und vertikale Reiter, Brotkrümelnavigation, Paginierung, usw.), Labels, erweiterte typografische Möglichkeiten, Miniaturansichten, Formatierungen für Hinweismeldungen und Fortschrittsbalken.[17]

JavaScript-Plugins[Bearbeiten]

Die JavaScript-Komponenten von Bootstrap basieren auf dem JavaScript-Framework jQuery. Die im Toolkit enthaltenen Plugins sind dementsprechend jQuery-Plugins. Sie bieten zusätzliche User-Interface-Elemente, wie beispielsweise Dialogfenster, Tooltips und Karussells. Außerdem erweitern sie die Funktionalität einiger vorhandener Oberflächenelemente, darunter zum Beispiel eine Autovervollständigungs-Funktion für Eingabefelder.[18]

Verwendung[Bearbeiten]

Um Bootstrap in einer HTML-Seite zu verwenden, muss zunächst eine CSS-Datei aus den heruntergeladenen LESS-Stylesheets kompiliert werden. Dies kann mit einem LESS-Compiler geschehen oder über die „Customize“-Funktion in der beiliegenden Bootstrap-Dokumentation.[12] Alternativ kann auch eine vorab kompilierte CSS-Datei heruntergeladen werden. Anschließend muss die Frame enthaltende CSS-Datei in das HTML-Dokument eingebunden werden. Falls auch JavaScript-Komponenten gewählt wurden, müssen diese zusammen mit der jQuery-Bibliothek ebenfalls im HTML-Dokument referenziert werden.

Das folgende Beispiel verdeutlicht die Funktionsweise. Der HTML-Quellcode definiert ein einfaches Suchformular sowie eine Ergebnisliste in Form einer Tabelle. Die Seite besteht aus regulären, semantisch verwendeten HTML5-Elementen sowie einiger zusätzlicher CSS-Klassenangaben entsprechend der Bootstrap-Dokumentation.[Anmerkung 2]

<!DOCTYPE html>
<html>
 
  <head>
    <title>Twitter Bootstrap Beispiel</title>
 
    <!-- Einbinden des Bootstrap-Stylesheets -->
    <link rel="stylesheet" href="css/bootstrap.min.css">
 
    <!-- optional: Einbinden der jQuery-Bibliothek -->
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
 
    <!-- optional: Einbinden der Bootstrap-JavaScript-Plugins -->
    <script src="js/bootstrap.min.js"></script>
  </head>
 
  <body>
    <section class="container">
      <h1>Suche</h1>
 
      <p>Beispiel für ein einfaches Suchformular.</p>
 
      <!-- Suchformular mit Eingabefeld und Button -->
      <form class="well form-search">
        <input type="text" class="input-medium search-query">
        <button type="submit" class="btn btn-primary">Search</button>
      </form>
 
      <h2>Ergebnisse</h2>
 
      <!-- Tabelle mit abwechselnder Zellenhintergrundfarbe und Außenrahmen -->
      <table class="table table-striped table-bordered">
        <thead>
          <tr>
            <th>#</th>
            <th>Title</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>1</td>
            <td>Lorem ipsum dolor sit amet</td>
          </tr>
          <tr>
            <td>2</td>
            <td>Consetetur sadipscing elitr</td>
          </tr>
          <tr>
            <td>3</td>
            <td>At vero eos et accusam</td>
          </tr>
        </tbody>
      </table>
    </section>
  </body>
 
</html>

Mit zunehmender Verbreitung von Bootstrap sind zahlreiche Dienste entstanden, welche auch den grafischen Entwurf eines Layouts ermöglichen. Dazu gehört zum Beispiel Jetstrap.[19]

Siehe auch[Bearbeiten]

Anmerkungen[Bearbeiten]

  1. Eine Beschreibung des Konzeptes der Hackweek im offiziellen Twitter-Blog
  2. Die JavaScript-Komponenten werden in diesem Beispiel nicht verwendet und nur der Vollständigkeit halber referenziert.

Weblinks[Bearbeiten]

 Commons: Bootstrap (Framework) – Sammlung von Bildern, Videos und Audiodateien
  • Bootstrap – die offizielle Website enthält die Dokumentation und Downloadmöglichkeiten (englisch)
  • deutsche Dokumentation – eine inoffizielle deutsche Übersetzung der Bootstrap-Dokumentation
  • LESS – die offizielle Website zur dynamischen Stylesheetsprache inkl. Dokumentation (englisch)

Einzelnachweise[Bearbeiten]

  1. a b c Mark Otto: Bootstrap from Twitter. 19. August 2011, abgerufen am 25. Februar 2012.
  2. Release v3.3.1 · twbs/bootstrap. Abgerufen am 16. November 2014.
  3. Bootstrap 3.3.1 released. Abgerufen am 16. November 2014.
  4. a b Mark Otto: Say hello to Bootstrap 2.0. 31. Januar 2012, abgerufen am 25. Februar 2012.
  5. Mark Otto: Bootstrap in A List Apart #342. 17. Januar 2012, abgerufen am 25. Februar 2012.
  6. a b Mark Otto: Building Twitter Bootstrap. 17. Januar 2012, abgerufen am 25. Februar 2012.
  7. a b Bootstrap, from Twitter. Abgerufen am 25. Februar 2012 (Offizielle Projektseite auf GitHub).
  8. less/bootstrap.less at master from twitter/bootstrap. Abgerufen am 12. September 2014 (Das bootstrap.less-Stylesheet im Bootstrap-Repository auf GitHub).
  9. a b less/variables.less at master from twitter/bootstrap. Abgerufen am 25. Februar 2012 (Das variables.less-Stylesheet im Bootstrap-Repository auf GitHub).
  10. a b Customize and Download. Abgerufen am 25. Februar 2012 (Die „Customize“-Option in der Bootstrap-Dokumentation).
  11. Scaffolding. Abgerufen am 25. Februar 2012 (Beschreibung des Grid-Systems in der Bootstrap-Dokumentation).
  12. Base CSS. Abgerufen am 25. Februar 2012 (Beschreibung des Base-CSS-Stylings in der Bootstrap-Dokumentation).
  13. Alexander Neumann: Twitter gibt HTML5-Framework Bootstrap 2.0 frei. In: heise Developer. 2. Februar 2012, abgerufen am 25. Februar 2012.
  14. Dieter Petereit: Bootstrap: CSS- und HTML5-basiertes WebApp-Toolkit von Twitter. In: t3n. 23. August 2011, abgerufen am 25. Februar 2012.
  15. Components. Abgerufen am 25. Februar 2012 (Beschreibung der zusätzlichen Komponenten in der Bootstrap-Dokumentation).
  16. Javascript for Bootstrap. Abgerufen am 14. Januar 2013 (Beschreibung der JavaScript-Komponenten in der Bootstrap-Dokumentation).
  17. Ilja Zaglov: Jetstrap: Praktisches Entwicklungstool für Twitter Bootstrap. In: t3n Magazin. 1. Oktober 2012, abgerufen am 2. Oktober 2012.