Display
Die CSS-Eigenschaft display legt den Anzeigemodus eines Elements fest. Sie bestimmt,
ob es sich im Layout als Block- oder Inline-Element verhält und ob
seine Inhalte im normalen Dokumentfluss, mit Flexbox oder Grid angeordnet werden.
Mit der CSS-Eigenschaft display lässt sich das voreingestellte Anzeigeverhalten von
HTML-Elementen verändern.
HTML-Elemente
HTML-Elemente besitzen ein voreingestelltes Anzeigeverhalten, entweder Block oder Inline. Dieses Standardverhalten bestimmt, wie sie sich im Layout verhalten – noch bevor CSS eingesetzt wird. Die meisten Elemente sind entweder Block-Elemente oder Inline-Elemente, und können ihr Verhalten mit CSS über die display-Eigenschaft ändern.
Block-Elemente
- beginnen in einer neuen Zeile
- nehmen standardmässig die volle verfügbare Breite ein
- können
width,height,marginundpaddingverwenden
Typische Block-Elemente:
<div> | <section> | <p> | <h1>–<h6>
Inline-Elemente
- bleiben im Textfluss
- beginnen nicht in einer neuen Zeile
- ignorieren
widthundheight
Typische Inline-Elemente: <span> | <a> | <strong> | <img>
Display Werte
inlineBleibt im Textfluss und ignoriertwidthundheight.blockVerhält sich wie ein Block-Element.inline-blockVerbindet das Verhalten eines Inline-Elements mit der Möglichkeit,widthundheightwie bei einem Block-Element festzulegen.noneEntfernt das Element vollständig aus dem Layout.contentsDas Element erzeugt keine eigene Box; seine Kindelemente bleiben im Layout erhalten.display: flexAktiviert Flexbox für flexible Anordnung.display: gridAktiviert Grid für zweidimensionale Layouts.
1. display: inline
Der CSS-Wert display: inline definiert ein Element als
Inline-Element. Diese Elemente verhalten sich wie einzelne Wörter innerhalb
eines fliessenden Textes.
Typische Standard-Elemente: <span>, <a>
(Hyperlink) und <strong> (fetter Text).
Zentrale Merkmale
- Kein Zeilenumbruch: Das Element verbleibt im normalen Textfluss. Mehrere Inline-Elemente werden in derselben Zeile nebeneinander dargestellt.
- Minimaler Platzbedarf: Die Breite richtet sich ausschliesslich nach dem tatsächlichen Inhalt (z. B. der Textlänge).
- Keine Grössenvorgaben: Die CSS-Eigenschaften
width(Breite) undheight(Höhe) zeigen bei reinen Inline-Elementen keine Wirkung. - Eingeschränkte Abstände: Horizontale Abstände (links und rechts)
funktionieren normal. Vertikale Aussenabstände (
margin-top/margin-bottom) verschieben die darüber oder darunter liegenden Textzeilen jedoch nicht.
Beispiel: Listenelemente li als inline
Aus einer vertikalen Liste wird eine horizontale Navigation. Listenelemente ul /
ist ein Blockelement, li verwendet standardmässig display: list-item.
Die Aufzählungszeichen verschwinden, weil die li-Elemente nicht mehr
display: list-item verwenden. Zwischen den Elementen bleibt der White-Space aus dem
HTML sichtbar.
- Kurs
- Workshop
- Masterclass
ul.oneline {
padding: 0;
margin: 0 0 20px;
}
ul.oneline li{
display: inline;
border: 1px solid salmon;
padding: 10px;
}
Inline-Elemente unterliegen dem Box Model.
Einige Eigenschaften wie margin-top, margin-bottom oder
width verhalten sich anders.
Details dazu im Kapitel „Box Model“.
2. display: block
Der CSS-Wert display: block zwingt ein HTML-Element dazu, sich als eigenständiger
Block im Layout zu verhalten. Diese Elemente bilden das strukturelle Fundament einer Webseite.
Typische Standard-Elemente: <div>, <p>
(Textabsatz), <h1> bis <h6> (Überschriften),
<header> und <footer>.
Zentrale Merkmale
- Erzwungener Zeilenumbruch: Ein Block-Element startet ausnahmslos auf einer neuen Zeile. Nachfolgende Inhalte werden automatisch darunter platziert.
- Maximale Raumausnutzung: Das Element dehnt sich in der Breite automatisch so weit aus, wie es das übergeordnete Element erlaubt (standardmässig 100 %).
- Flexible Dimensionen: Die Eigenschaften für Breite (
width) und Höhe (height) lassen sich exakt definieren. - Vollständige Abstände: Innenabstände (
padding), Aussenabstände (margin) und Rahmen (border) werden auf allen vier Seiten korrekt berechnet und verschieben das umliegende Layout.
Beispiel: display: block mit :hover
Der Link ist ein inline-Element und wird zu einem Block-Element. Dadurch ist der
gesamte Bereich klickbar – ideal für Navigationen.
a.block{
display: block;
border: 1px solid salmon;
padding: 10px;
}
a.block:hover{
background: salmon;
}
3. display: inline-block
Der CSS-Wert display: inline-block kombiniert das Verhalten von Inline-Elementen mit
den Gestaltungsmöglichkeiten von Block-Elementen. Es verhält sich im Textfluss wie ein
Inline-Element, lässt sich im Inneren aber wie ein Block-Element formatieren.
Typische Anwendungen: Buttons, Navigationselemente und kleine Layout-Boxen innerhalb einer Zeile.
Zentrale Merkmale
- Kein Zeilenumbruch: Das Element verbleibt wie ein Inline-Element im normalen Textfluss und steht neben anderen Elementen in derselben Zeile.
- Flexible Grössenvorgaben: Im Gegensatz zu reinen Inline-Elementen reagiert
es auf die CSS-Eigenschaften
width(Breite) undheight(Höhe). - Volle Abstände: Sowohl horizontale als auch vertikale Innen- und
Aussenabstände (
marginundpadding) funktionieren in alle Richtungen einwandfrei. - Layout-Kontrolle: Es ermöglicht das Erstellen von Boxen (z. B. Buttons), die nebeneinander stehen, aber feste Maße und Abstände besitzen.
display: inline-block mit :hover
Zwischen inline-block-Elementen entsteht ein White-Space
wie zwischen Wörtern im Text.
Intensivstation Intensivstation
a.i-block{
display: inline-block;
border: 1px solid salmon;
padding: 10px;
}
a.i-block:hover{
background: salmon;
}
4. display: none
Der CSS-Wert display: none blendet ein Element vollständig aus dem Layout aus. Das
Element existiert zwar weiterhin im HTML-Code, wird aber auf der Webseite weder angezeigt noch
beansprucht es Platz.
Zentrale Merkmale:
- Kein Platzbedarf: Das Element verschwindet komplett aus dem sichtbaren Layout. Nachfolgende Elemente rücken nach und füllen die Lücke auf.
- Keine Interaktion: Ausgeblendete Elemente sind für Nutzer unsichtbar und können nicht geklickt oder fokussiert werden.
- Barrierefreiheit: Elemente mit diesem Wert werden von Screenreadern (Vorleseprogrammen für Sehbehinderte) standardmässig ignoriert.
- Dynamische Nutzung: Wird häufig in Kombination mit JavaScript verwendet, um Menüs, Pop-ups oder Tabs dynamisch ein- und auszublenden.
Unterschied zu visibility: hidden: Während display: none den Platz
freigibt, lässt visibility: hidden das Element unsichtbar werden, behält dessen
Platz im Layout aber bei.
5. display: contents
Der CSS-Wert display: contents entfernt die Box eines Elements aus dem Layout, seine
Kindelemente bleiben jedoch erhalten. Die DOM-Struktur bleibt unverändert; im Layout werden die
Kindelemente so behandelt, als wären sie direkte Kinder des übergeordneten Elements.
Zentrale Merkmale:
- Box-Verschwinden: Das Element selbst erzeugt keine visuelle Box. Eigenschaften wie Hintergrundfarben, Rahmen, Breiten oder Abstände (Margin/Padding) des Elements selbst werden ignoriert.
- Layout-Ebene: Die Kindelemente nehmen direkt am Flex- oder Grid-Layout des übergeordneten Elements teil.
- Barrierefreiheit: Einige Browser entfernen das Element aus dem
Accessibility
Tree. Deshalb sollte
display: contentsnicht auf semantisch wichtigen Elementen verwendet werden. - Styling-Ausnahme: Geerbte CSS-Eigenschaften wie
color(Textfarbe) oderfont-family(Schriftart), die am Element mitdisplay: contentsdefiniert sind, werden weiterhin an die Kindelemente weitergegeben.
Typischer Einsatzzweck: Zusätzliche, nicht semantische Wrapper, die etwa durch ein CMS oder eine Komponente erzeugt werden und ein Flexbox- oder Grid-Layout nicht unterbrechen sollen.
6. display: flex & display: grid
Während die klassischen Display-Werte vor allem das Verhalten einzelner Boxen im Textfluss steuern, eröffnen moderne Layout-Systeme weitreichende Möglichkeiten für komplexe Webdesigns. Sie verwandeln ein Element in ein übergeordnetes Steuersystem für alle darin enthaltenen Kindelemente.
Die zwei mächtigsten Layout-Werkzeuge in CSS
- Eindimensionale Ausrichtung: Über display: flex erfolgt die flexible Anordnung von Elementen entlang einer einzelnen Achse (Zeile oder Spalte). Dies eignet sich besonders für Navigationsleisten oder kleinere Komponenten.
- Zweidimensionales Raster: Über display: grid werden Zeilen und Spalten gleichzeitig gesteuert. Dieser Wert ist ideal für das übergeordnete Seitenlayout und komplexe Kachelsysteme.
Kurz gesagt
inlinebleibt im Textfluss.blockerzeugt eine eigene Box über die verfügbare Breite.inline-blockverbindet Inline-Verhalten mitwidthundheight.noneentfernt das Element aus dem Layout.contentsentfernt nur die Box des Elements.flexundgridordnen die Kindelemente an.
Neben diesen Werten gibt es weitere display-Werte und kombinierte Schreibweisen für spezielle Layout-Aufgaben.