Bootstrap ist ein zweischneidiges Schwert: Auf der einen Seite ist es eine wirklich umfassende Lösung komplizierte Webseiten aufzubauen, auf der anderen Seite sehen sich alle Seiten die Bootstrap verwenden fürchterlich ähnlich ... Der für diesen Kurs ausschlaggebende Grund ist aber ein ganz anderer: Bootstrap ist hervorragend dokumentiert und damit ein gutes Framework um so etwas zum ersten Mal auszuprobieren.
Zum Zeitpunkt meiner Beschreibung auf dieser Seite ist Bootstrap Version 3.3, ladet euch also nach Möglichkeit diese Version runter. Auf der Seite von Bootstrap werden normalerweise drei verschiedene Downloads angeboten, Ihr interessiert euch weder für die “SASS” noch für die “Source” Pakete. Sollten sich die Bezeichungen in der Zwischenzeit geändert haben sucht den Download über dem was von “compiled and minified” steht.
Das heruntergeladene Archiv sollte in etwa die folgenden Dateien enthalten:
bootstrap-3.3.x-dist
├── css
│ ├── bootstrap.css
│ ├── bootstrap.css.map
│ ├── bootstrap.min.css
│ ├── bootstrap-theme.css
│ ├── bootstrap-theme.css.map
│ └── bootstrap-theme.min.css
├── fonts
│ ├── glyphicons-halflings-regular.eot
│ ├── glyphicons-halflings-regular.svg
│ ├── glyphicons-halflings-regular.ttf
│ ├── glyphicons-halflings-regular.woff
│ └── glyphicons-halflings-regular.woff2
└── js
├── bootstrap.js
├── bootstrap.min.js
└── npm.js
Kopiert bitte die bootstrap.min.css
und die bootstrap-theme.min.css
Datei in den CSS Ordner eurer Seite. Die Datei bootstrap.min.js
kommt in einen Ordner js
eurer Seite (diesen müsst ihr ggfs. noch anlegen).
Wir machen es uns zunächst mal leicht und verwenden Bootstrap nur in einem sehr kleinen Teil der Seite um mal ein Gefühl dafür zu entwickeln. Legt daher im Ordner _layouts
eine neue Datei namens bootstrap.html
an und fügt den folgenden Inhalt hinein:
Das ist die Stelle, an der ich auf die hervorragende Dokumentation verweisen kann ;) Bootstrap liefert wirklich nahezu alles mit, was man sich so wünschen kann. Es gibt übrigens auch eine deutsche Version der Dokumentation, Ich habe aber keine Ahnung wie gut die Übersetzung ist. Detailliert eingehen möchte ich an dieser Stelle aber besonders auf das Grid System und den Zusammenhang mit der Entwicklung für mobile Geräte.
Typischerweise teilen sich Webseiten in mindestens zwei verschiedene Bereiche auf: Ein Bereich stellt den Inhalt dar, der andere Bereich die Navigation. Wenn man seine Seite vertikal gestaltet ist es ziemlich einfach diese Bereiche zu trennen: Man braucht einen div
Bereich für die Navigation “oben” und einen div
Bereich für die Navigation “darunter”. Problematisch wird es aber garantiert, wenn die Anzahl der Seiten zwischen denen man navigieren möchte einfach zu groß wird. Deswegen sieht man auf so vielen Seiten eine sog. “Navbar”. Nach unten hin ist der Platz im Browser durch die Scrollbalken theoretisch beliebig.
Wer sich schon mit der zweiten CSS Lektion befasst hat kennt eine weitere Möglichkeit eine Seitennavigation zu bauen. Dort haben wir die Eigenschaften float
und margin
verwendet, was auf kleinen Bildschirmen wie den von Mobilgeräten aber unpraktisch ist. Deswegen verwenden wir an dieser Stelle das Grid-System von Bootstrap.
Mit diesem System lassen sich komplex verschachtelte Webseiten bauen, für den Anfang reicht uns aber erstmal eine Zweiteilung.
{{ content }}
Bereich hin.class
Attributes arbeiten: class="active"
hervorheben. Da der Wert active
aber nicht immer geschrieben werden soll, könnt Ihr die aktuelle URL mit der Ziel URL vergleichen. Für den Anfang reicht ein statischer Ausdruck der für jeden Link in etwa wie folgt aussieht: {% if page.url == "/meine-seite" %}active{% endif %}
. Den Verleich gegen "/meine-seite"
müsst Ihr natürlich für jeden Link anpassen._config.yml
eine Liste für alle Seiten an, zu denen navigiert werden können soll. Diese Liste gebt Ihr dann innerhalb der Navigation mit den passenden li
Elementen aus. Beachtet dabei, das eure Listenelemente mindestens zwei Informationen bereitstellen sollten: Die URL des Links und eine für Menschen sinnvolle Bezeichnung.if
könnt Ihr dann die statisch codierten URLs rausschmeißen und gegen die URL der aktuellen Laufvariable ersetzen. Sollte eure Laufvariable currentNav
heißen und die entsprechende URL einfach url
, erhaltet ihr also den folgenden Ausdruck: {% if page.url == currentNav.url %}active{% endif %}
Auf der Seite mit den Bootstrap Beispielen finden sich diverse gute Grundlage für Seiten mit verschiedenen Arten von Navigationskonzepten. Sucht euch davon eines aus, das euch spannend erscheint.