Bootstrap erfordert eine spezifische HTML-Struktur für die korrekte Funktion seiner CSS-Klassen. Diese Struktur basiert auf einem System von ineinandergreifenden CSS-Klassen, die bestimmte HTML-Hierarchien erwarten.
Jede Bootstrap-Website benötigt eine vollständige HTML5-Grundstruktur:
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Meine Bootstrap Website</title>
<!-- Bootstrap CSS einbinden -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css"
rel="stylesheet">
</head>
<body>
<!-- Hier kommt der Seiteninhalt -->
<!-- Bootstrap JavaScript am Ende des body-Tags -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js">
</script>
</body>
</html>Erklärung der Komponenten:
DOCTYPE: <!DOCTYPE html>
definiert das Dokument als HTML5-Standard. Bootstrap setzt moderne
CSS-Features voraus, die in älteren HTML-Standards nicht verfügbar
sind.
lang-Attribut: <html lang="de">
definiert die Sprache für Screenreader und Suchmaschinen.
Meta-Tags: Steuern die Browser-Interpretation der Website.
Drei Meta-Tags sind für Bootstrap-Websites erforderlich:
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge">Charset-Meta-Tag: Definiert UTF-8-Zeichenkodierung für korrekte Darstellung von Umlauten und Sonderzeichen.
Viewport-Meta-Tag: Aktiviert responsives Design durch korrekte Viewport-Behandlung:
<meta name="viewport" content="width=device-width, initial-scale=1.0">width=device-width: Setzt die
Viewport-Breite auf die Gerätebreite.
initial-scale=1.0: Verhindert
automatisches Zoomen durch mobile Browser.
IE-Kompatibilitäts-Meta-Tag: Aktiviert aktuellen Rendering-Modus in Internet Explorer.
Bootstrap verwendet drei Container-Typen für die Inhaltsorganisation:
<!-- Standard-Container: Responsive mit maximaler Breite -->
<div class="container">
<h1>Standard-Container</h1>
<p>Responsive Breite mit definierten Maximalwerten.</p>
</div>
<!-- Fluid-Container: Vollbreite -->
<div class="container-fluid">
<h1>Fluid-Container</h1>
<p>Nimmt immer 100% der Bildschirmbreite ein.</p>
</div>
<!-- Responsive Container: Fluid bis Breakpoint -->
<div class="container-lg">
<h1>Responsive Container</h1>
<p>Fluid auf kleinen Bildschirmen, begrenzt auf größeren.</p>
</div>Standard-Container (.container): Maximale Breiten je Bildschirmgröße:
Fluid-Container (.container-fluid): Nimmt immer 100% der verfügbaren Breite ein.
Responsive Container: Verhalten sich bis zum definierten Breakpoint wie Fluid-Container, darüber wie Standard-Container.
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Container-Vergleich</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css"
rel="stylesheet">
<style>
.demo-container {
background-color: #e9ecef;
border: 2px dashed #6c757d;
margin-bottom: 2rem;
padding: 1rem;
}
</style>
</head>
<body>
<div class="container demo-container">
<h2>Standard-Container</h2>
<p>Maximale Breite mit zentrierter Ausrichtung.</p>
</div>
<div class="container-fluid demo-container">
<h2>Fluid-Container</h2>
<p>Vollbreite unabhängig von der Bildschirmgröße.</p>
</div>
<div class="container-md demo-container">
<h2>Medium-Responsive Container</h2>
<p>Fluid unter 768px, begrenzt darüber.</p>
</div>
</body>
</html>Bootstrap folgt einer dreistufigen Hierarchie: Container → Row → Column
<div class="container"> <!-- Container -->
<div class="row"> <!-- Row -->
<div class="col-12"> <!-- Column -->
<h1>Inhalt</h1> <!-- Inhalt -->
</div>
</div>
</div>Funktionen der Hierarchie-Ebenen:
Container: Definieren Seitenränder und Zentrierung.
Rows: Neutralisieren Container-Padding und bereiten Spalten vor. Verwenden negative Margins für korrekte Ausrichtung.
Columns: Definieren Breitenaufteilung innerhalb einer Row. Bootstrap verwendet ein 12-Spalten-System.
<!-- FALSCH: Column direkt im Container -->
<div class="container">
<div class="col-6">Fehlende Row verursacht Layout-Probleme</div>
<div class="col-6">Spacing funktioniert nicht korrekt</div>
</div>
<!-- RICHTIG: Vollständige Hierarchie -->
<div class="container">
<div class="row">
<div class="col-6">Korrekte Struktur</div>
<div class="col-6">Layout funktioniert ordnungsgemäß</div>
</div>
</div><!-- Standard-Viewport für Bootstrap -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Erweiterte Optionen -->
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0, user-scalable=yes">Parameter-Erklärung:
width=device-width: Verwendet die
tatsächliche Gerätebreite.
initial-scale=1.0: Setzt anfänglichen
Zoom auf 100%.
maximum-scale: Definiert maximalen
Zoom-Faktor.
user-scalable: Erlaubt oder verhindert
Benutzer-Zoom.
user-scalable=no sollte vermieden werden, da es die
Barrierefreiheit für sehbehinderte Nutzer beeinträchtigt.
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="description" content="Bootstrap-Website Grundstruktur">
<meta name="author" content="Entwickler Name">
<title>Bootstrap-Website</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css"
rel="stylesheet"
integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN"
crossorigin="anonymous">
</head>
<body>
<header class="container-fluid bg-primary text-white py-3">
<div class="container">
<div class="row">
<div class="col-12">
<h1 class="h3 mb-0">Website-Titel</h1>
</div>
</div>
</div>
</header>
<main class="container my-5">
<div class="row">
<div class="col-12">
<h2>Hauptüberschrift</h2>
<p class="lead">Einleitungstext der Website.</p>
</div>
</div>
<div class="row mt-4">
<div class="col-md-8">
<h3>Hauptinhalt</h3>
<p>Hauptinhalt der Website. Diese Spalte nimmt 8 von 12 verfügbaren Spalten ein.</p>
<p>Auf Bildschirmen unter 768px nimmt sie die volle Breite ein.</p>
</div>
<div class="col-md-4">
<h3>Sidebar</h3>
<p>Sidebar-Inhalt mit 4 von 12 Spalten auf medium+ Bildschirmen.</p>
<p>Wird auf kleineren Bildschirmen unter den Hauptinhalt verschoben.</p>
</div>
</div>
</main>
<footer class="container-fluid bg-dark text-white py-3 mt-5">
<div class="container">
<div class="row">
<div class="col-12 text-center">
<p class="mb-0">© 2025 Website. Alle Rechte vorbehalten.</p>
</div>
</div>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"
integrity="sha384-C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL"
crossorigin="anonymous"></script>
</body>
</html>Header: Verwendet container-fluid für
vollbreiten Hintergrund mit verschachteltem container für
Inhaltspositionierung.
Main: Demonstriert ein- und mehrspaltige Layouts mit korrekter Container-Row-Column-Hierarchie.
Footer: Folgt demselben Pattern wie Header.
Bootstrap funktioniert mit semantischen HTML5-Elementen:
<body>
<header class="container-fluid bg-primary">
<nav class="container">
<!-- Navigation -->
</nav>
</header>
<main class="container">
<article class="row">
<section class="col-lg-8">
<h1>Artikelüberschrift</h1>
<!-- Artikel -->
</section>
<aside class="col-lg-4">
<!-- Sidebar -->
</aside>
</article>
</main>
<footer class="container-fluid bg-dark text-white">
<!-- Footer -->
</footer>
</body>Semantisches HTML verbessert Zugänglichkeit und SEO ohne Bootstrap-Funktionalität zu beeinträchtigen.
Überprüfung der Bootstrap-CSS-Eigenschaften:
max-width und
margin: 0 autodisplay: flex und negative Marginsflex und padding<style>
.container, .container-fluid { border: 2px solid red !important; }
.row { border: 2px solid blue !important; }
[class*="col-"] { border: 2px solid green !important; }
</style>