Bootstrap5
Zur Navigation springen
Zur Suche springen
Links
Zielsetzung
Bootstrap ist eine Sammlung von CSS-Definitionen, die die Gestaltung von Webseiten stark vereinfacht.
Die aktuelle Version ist 5.
Schnellkurs
- eine Beispieldatei bootstrap.html
<!DOCTYPE html> <html lang="en"> <head> <title>Bootstrap 5 Example</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/css/bootstrap.min.css" rel="stylesheet"> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/js/bootstrap.bundle.min.js"></script> </head> <body> <nav class="navbar navbar-expand-sm navbar-dark bg-dark"> <div class="container-fluid"> <a class="navbar-brand" href=" #">Logo</a> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#mynavbar"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="mynavbar"> <ul class="navbar-nav me-auto"> <li class="nav-item"> <a class="nav-link" href=" #">Start</a> </li> <li class="nav-item"> <a class="nav-link" href=" #">Impressum</a> </li> </ul> <form class="d-flex"> <button class="btn btn-secondary" type="button">Settings</button> <button class="btn btn-primary" type="button">Logout</button> </form> </div> </div> </nav> <div class="container-fluid p-5 bg-primary text-white text-center"> <h1>Meine erste Bootstrapseite</h1> <p>Ändere die Fenstergröße, dann siehst du das Verhalten bei verschiedenen Größen!</p> </div> <div class="container mt-5"> <div class="row"> <div class="col-sm-4"> <h3>Column 1</h3> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit...</p> <p>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris...</p> </div> <div class="col-sm-4"> <h3>Column 2</h3> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit...</p> <p>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris...</p> </div> <div class="col-sm-4"> <h3>Column 3</h3> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit...</p> <p>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris...</p> </div> </div> </div> </body> </html>
- Es gibt 3 Bereiche:
- Die schwarze Zeile mit dem Navigationsmenü. Im Quelltext ist das der Bereich
<nav> ... </nav>
- Der blaue Bereich. Im Quelltext: <div class="container-fluid ...">...</div>
- Der weiße Bereich mit 3 Spalten. Im Quelltext: <div class="container mt-5">...</div>
- Die schwarze Zeile mit dem Navigationsmenü. Im Quelltext ist das der Bereich
Container
.container-fluid
erzeugt einen Bereich, der die volle Breite einnimmt..container
erzeugt einen Bereich, der mit Padding ausgestattet ist, je nach Anzeigegerät. Solche Bereiche werden meist mit weiteren Klassen (im Beispiel mt-5) genauer spezifiziert.mt-5
bedeutet Top Margin Stufe 5, das ist ein großer Abstand oben- Es gibt auch responsive Bereiche:
.container-XX
, wobei XX folgende Werte annehmen kann:- sm: small. Bei < 576px: volle Breite, >576px: 540px >768px:
- md: medium
- lg: large
- xl: extra large
- xxl: extreme large
Klasse | Extra Small | Small | Medium | Large | Extra Large | XXL |
---|---|---|---|---|---|---|
<576px | >= 576py | >=768py | >=992px | >=1200px | >1320px | |
.container-sm | 100% | 570px | 720px | 960px | 1140px | 1320px |
.container-md | 100% | 100% | 720px | 960px | 1140px | 1320px |
.container-lg | 100% | 100% | 100% | 960px | 1140px | 1320px |
.container-xl | 100% | 100% | 100% | 100% | 1140px | 1320px |
.container-xxl | 100% | 100% | 100% | 100% | 100% | 1320px |
Spalten
- Der 3.te Bereich enthält 3 Spalten.
- Wenn ein Bereich Spalten enthält, so wird immer folgende Struktur benutzt:
<div class="row"> <div class="col-XX-YY">...</div> <div class="col-XX-YY">...</div> ... </div>
- Im Beispiel ist col-XX-YY die Klasse col-sm-4: sm steht für Small Medium, 4 für die Breite: Zwischen 1 und 12.
<div class="container-fluid"> <div class="row"> <div class="col-md-3">Login</div> <div class="col-md-6"><input type="text"></div> <div class="col-md-3"><button>login</login></div> </div> </div>
- Es werden 3 Spalten erzeugt, wobei die 2.te doppelt so breit wie die anderen ist.
- Wenn das Fenster zu schmal wird, dann erscheinen die "Spalten" untereinander.
- Wenn die Spalten gleich breit sein sollen, so reicht Folgendes:
<div class="row"> <div class="col"></div> <div class="col"></div> <div class="col"></div> </div>
Text-Attribute
- Farben:
- text-muted: Text wird schwächer dargestellt
- text-primary: Hauptfarbe
- text-secondary: Weitere Farbe, abgestimmt auf die Hauptfarbe
- text-success: Bei Erfolg
- text-info: Information
- text-warning
- text-danger
- text-white
- text-dark
- text-light
- Hintergrundfarben:
- bg-primary: Haupt-Hintergrund
- bg-secondary: 2.ter Hintergrund
- und so weiter, siehe oben
Weitere Formatierungshilfen
- Rahmen:
- border: mit Rahmen
- border-0: kein Rahmen
- border-top: nur oben ein Strich, analog: border-bottom border-start border-end
- border-top-0 Oben kein Rahmen, analog: border-end-0 border-start-0 border-end-0
- border-1 dünner Strich. Analog border-2 ... border-5
- border-primary: Farbe des Rahmens ist die Hauptfarbe, analog border-secondary ...
- rounded: die Ecken sind gerundet. Analog: rounded-top, rounded-bottom, rounded-start, rounded-end
- rounded-circle: es entsteht ein Kreis.
- rounded-pill: ein Halbkreis, Rechteck, Halbkreis:
- rounded-0: keine Rundung
- rounded-1: kleiner Radius. Analog: rounded-2 ... rounded-5
Beispiel: Füge folgendes vor dem letztem <div> ein:
<div class="row"> <div class="col-sm-12 text-info"> This is a <span class="text-primary bg-secondary border rounded-1 bg-info">text</span> with abg-secondary border around the word text. </div> <div class="row"> <div class="col-sm-2"> <span class="bg-secondary border rounded">rounded</span> </div> <div class="col-sm-2"> <div class="bg-secondary border rounded-top">rounded-top</div> </div> <div class="col-sm-2"> <div class="bg-secondary border rounded-end">rounded-end</div> </div> <div class="col-sm-2"> <div class="bg-secondary border rounded-bottom">rounded-bottom</div> </div> <div class="col-sm-2"> <div class="bg-secondary border rounded-start">rounded-start</div> </div> <div class="col-sm-2"> <div class="bg-secondary border rounded-circle">rounded-circle</div> </div> </div> <div class="row"> <div class="col-sm-2"> <div class="bg-secondary border rounded-pill" style="width:130px">rounded-pill</div> </div> <div class="col-sm-2"> <div class="bg-secondary border rounded-0">rounded-0</div> </div> <div class="col-sm-2"> <div class="bg-secondary border rounded-1">rounded-1</div> </div> <div class="col-sm-2"> <div class="bg-secondary border rounded-2">rounded-2</div> </div> <div class="col-sm-2"> <div class="bg-secondary border rounded-3">rounded-3</div> </div> <div class="col-sm-2"> <div class="bg-secondary border rounded-4">rounded-4</div> </div> <div class="col-sm-2"> <div class="bg-secondary border rounded-5">rounded-5</div> </div> <div class="col-sm-2"> <div class="bg-secondary border rounded-pill" style="width:130px;">rounded-pill</div> </div> </div> </div>
- .mx-auto: Setzte margin-left und margin-right auf auto.
<div class="mx-auto bg-warning" style="width:150px">Centered</div>
- w-25: Breite ist 25% des Elternelements. Analog: w-50 w-75 w-100 w-auto
- h-25: Höhe ist 25% des Elternelements. Analog: h-50 h-75 h-100 h-auto
<div style="height:200px;background-color:#ddd"> <div class="h-25 bg-warning">Height 25%</div> <div class="h-50 bg-warning">Height 50%</div> <div class="h-75 bg-warning">Height 75%</div> <div class="h-100 bg-warning">Height 100%</div> <div class="h-auto bg-warning">Auto Height</div> <div class="mh-100 bg-warning" style="height:500px">Max Height 100%</div> </div>
Tabellen
- table: Allgemeine Tabelle
- table-striped: jede 2.te Zeile ist anderst gefärbt
- table-bordered: mit Rahmen
- table-hover: Zellenfarbe ändern sich, wenn die Maus drauf kommt
- table-dark: Dunkelmodus
- table-borderless: kein Rahmen
- table-primary: Überschrift mit Hauptfarbe. Analog table-secondary, table-success, table-info...
- table-sm: schmale Tabelle
- table-responsive: passt an Anzeigegerät an
Beispiel: füge das Folgende vor dem letzten <div> ein:
<div class="row">
<div class="col-sm-12">
<table class="table border table-striped">
<thead>
<tr>
<th>No</th>
<th>Name</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td><td>Adam</td>
</tr>
<tr>
<td>2</td><td>Berta</td>
</tr>
<tr>
<td>3</td><td>Charly</td>
</tr>
</tbody>
</table>
</div>
</div>