CSS/Eigenschaften/display
Die Eigenschaft display legt fest, welche Art von Box ein Element erzeugt. Jedes Element kann Null oder mehr Boxen erzeugen
- Erlaubte Werte
Als Werte für display konnte ursprünglich nur ein einzelner Wert angegeben werden. Das CSS3-Displaymodul erweitert das um eine Mehrwort-Syntax, die das äußere und innere Verhalten einer Box getrennt beschreiben. Die Einzelworte aus CSS 2.1 werden als "vorgefertigte" Werte (precomposed values) bezeichnet.
Bei der Zweiwort-Syntax bezeichnet das erste Wort das Außenverhalten des Elements und das zweite Wort legt das innere Formatierungsmodell des Elements fest.
Eine Aufstellung aller möglichen Werte finden Sie weiter unten.
- Vererbung steuernde Werte
inherit
,initial
,unset
undrevert
- Standardwert
inline
- dass bestimmte Elemente scheinbar einen anderen Defaultwert haben, liegt nicht an CSS, sondern an dem Stylesheet, das im Browser eingebaut ist. Verwenden Sie deshalb niemalsdisplay: initial;
!- anwendbar auf
alle Elemente
- Vererbung
nein
- animierbar
nein
span { display: block; float: right; }
Inhaltsverzeichnis
Siehe auch
- CSS/Tutorials/Ausrichtung/display
- für Tabellenelemente (display:table, display:table-cell, ...)
- CSS/Tutorials/Sichtbarkeit von Elementen
- MathML - das display-Attribut kennt dort aber nur block und inline
Weblinks
- Spezifikation (W3C): display property
- MDN: display
- Positionierung und Anzeige
- Abstände
- Benutzeroberfläche
- Container
- generierter Inhalt
- Größenangaben
- Box-Ausrichtung
- Flexbox Layout
- Grid Layout
- Hintergründe
- Listen
- Tabellen
- Scroll Snap
- Rahmen und Schatten
- Schriftformatierung
- Textformatierung
- Textausrichtung
- Umbruchsteuerung
- Transformationen
- Animationen
Einzelwort-Syntax
none
- Das Element wird nicht dargestellt. Es existiert zwar im DOM, wird im Layout der Seite aber nicht berücksichtigt.
- Beachten Sie: Wenn Sie ein Element per JavaScript ausblenden wollen, setzen Sie entweder eine Klasse, die eine CSS-Regel aktiviert, die mittels
display:none
seine natürliche display-Eigenschaft überschreibt, oder verwenden Sie die hidden-Eigenschaft (was per Browser-Stylesheet dasdisplay:none
herbeiführt). Direktelement.style.display = "none";
zu setzen ist deutlich umständlicher. - contents
- Das Element wird selbst nicht dargestellt und so behandelt, als befände sich sein Inhalt an seiner Stelle. Ein Styling mit CSS ist nicht möglich. Wenn das Element Teil eines Flex- oder Grid-Containers ist, werden seine Kind-Elemente zu den Flex- bzw. Grid-Items.
- block
- Legt fest, dass das Element der Blockformatierung unterliegt.
- inline
- Legt fest, dass das Element der Inlineformatierung unterliegt.
- Block- oder Inlineformatierung sind nur von Bedeutung, wenn das Elternelement seinen Inhalt gemäß dem Flow-Modell anordnet. Flow ist der Normalfall, abweichende Layoutmodelle werden mittels anderer display-Werte festgelegt und sind Table, Flexbox, Grid oder Ruby.
- Ein inline formatiertes Element kann auf mehrere Zeilen umgebrochen werden.
- flow-root
- (CSS3) Legt fest, dass das Element der Blockformatierung unterliegt und ein Flow-Root bildet - also einen neuen Blockformatierungskontext erzeugt. Dieser Wert kann frühere Workarounds zum Erzwingen von Blockformatierungskontexten (z. B. overflow:hidden) obsolet machen.
- inline-block
- Legt fest, dass das Element zwar im inline-Fluss bleibt, nach innen jedoch ein Flow-Root bildet. Deshalb wird das Element nicht im Textfluss seines Elternelements umgebrochen. Innerhalb des Elements ist ein Textumbruch aber möglich.
list-item
- Legt fest, dass das Element der Blockformatierung unterliegt. Ein Flow-Root wird nicht gebildet, aber dem Element wird ein List-Marker zugeordnet, der mit den list-style-Eigenschaften beeinflusst werden und auf den auch die ::marker-Pseudoklasse angewendet werden kann.
run-in
- Derzeit (Oktober 2022) noch in keinem Browser implementiert. Das Element wird wie ein inline-Element formatiert, das sich in den Flow des nachfolgenden Elements integriert.
Für das Flexbox Layout-Modell
- flex
- Das Element unterliegt der Blockformatierung und layoutet seinen Inhalt als Flexbox
inline-flex
- Das Element unterliegt der Inlineformatierung und layoutet seinen Inhalt als Flexbox
Für das Grid Layout-Modell
- grid
- Das Element unterliegt der Blockformatierung und layoutet seinen Inhalt als Raster
inline-grid
- Das Element unterliegt der Inlineformatierung und layoutet seinen Inhalt als Raster
Ferner – für Tabellen aus Nicht-Tabellen-Elementen (z.B. bei XML)
table
- Das Element enthält tabellarisch angeordnete Kindelemente und erzeugt eine neue Zeile. Wirkt wie das
table
-Element in HTML. inline-table
- Das Element enthält tabellarisch angeordnete Kindelemente und wird im laufenden Textfluss angezeigt. Wirkt wie das
table
-Element in HTML, aber inline table-row
- Das Element enthält nebeneinander angeordnete Kindelemente. Wirkt wie das
tr
-Element in HTML table-row-group
- Das Element enthält eine Gruppe von Elementen mit nebeneinander angeordneten Kindelementen. Wirkt wie das
tbody
-Element in HTML table-header-group
- Das Element enthält eine Gruppe von Elementen mit nebeneinander angeordneten Kindelementen. Wirkt wie das
thead
-Element in HTML. table-footer-group
- Das Element enthält eine Gruppe von Elementen mit nebeneinander angeordneten Kindelementen. Wirkt wie das
tfoot
-Element in HTML. table-column
- Das Element steht für eine Gruppe von Elementen, die eine Spalte der Tabelle bilden. Wirkt wie das
col
-Element in HTML. table-column-group
- Das Element steht für eine Gruppe von Elementen mit der Eigenschaft
table-cell
. Wirkt wie dascolgroup
-Element in HTML. table-cell
- Das Element steht für eine Tabellenzelle. Wirkt wie das
td
-Element in HTML (auch fürth
-Elemente). table-caption
- Das Element steht für eine Tabellenüberschrift. Wirkt wie das
caption
-Element in HTML.
⇒ CSS/Eigenschaften/display: table
Zweiwort-Syntax
In dieser Syntax wird das Außen- und Innenverhalten eines Elements getrennt, also wie es sich in den Flow des Elternelements einfügt, und welches Layout es auf seine Kindelemente anwendet.
Erster Wert: Außenverhalten
Das Außenverhalten ist nur von Bedeutung, wenn das Elternelement Flow-Layout verwendet.
block
- Das Element wird als Blockelement formatiert
inline
- Das Element wird als Inlineelement formatiert
run-in
- Das Element wird als Run-In Element formatiert
Zweiter Wert: Innenverhalten
flow
- Das Element layoutet seinen Inhalt gemäß dem Flow-Modell (also Standardverhalten ohne spezielles Layoutmodell)
flow-root
- Das Element layoutet seinen Inhalt gemäß dem Flow-Modell und bildet ein Flow-Root.
list-item
- Die Angabe
list-item
wird als dritter Wert zusammen mitflow
oderflow-root
verwendet, um das Element als Listeneintrag zu formatieren. table
- Das Element layoutet seinen Inhalt als Tabelle
flex
- Das Element layoutet seinen Inhalt als Flexbox
grid
- Das Element layoutet seinen Inhalt als Raster
ruby
- Das Element layoutet seinen Inhalt gemäß Ruby-Layout
display: block;
wird es zu einem Block-Element, das dann rechts an der Seite ausgerichtet wird.