CSS Overflow
Overflow entsteht, wenn Inhalt mehr Platz benötigt, als in einer Box verfügbar ist. Das kann
beispielsweise durch lange Texte, grosse Bilder oder eine begrenzte Breite oder Höhe entstehen.
Mit overflow legst du fest, ob der überstehende Inhalt sichtbar bleibt,
abgeschnitten wird oder scrollbar ist.
overflow ist eine Kurzschreibweise für overflow-x und
overflow-y. Ein Wert gilt für beide Achsen. Bei zwei Werten gilt der erste für die
x-Achse und der zweite für die y-Achse.
.element {
overflow: auto; /* x und y */
overflow: auto hidden; /* x | y */
}
Overflow Werte
Overflow entsteht häufig durch eine feste Breite oder Höhe, kann aber auch durch maximale Grössen
wie max-width oder max-height entstehen.
visibleStandard – Inhalt läuft aus der Box heraushiddenInhalt wird abgeschnittenscrollScrollbars werden immer angezeigtautoScrollbars erscheinen nur bei BedarfclipInhalt wird abgeschnitten, ohne Scroll-Möglichkeitoverflow-xhorizontalen Overflow steuernoverflow-yvertikalen Overflow steuernoverflow-inlineOverflow in Leserichtung steuernoverflow-blockOverflow in Blockrichtung steuern
1. overflow: visible
Der Standardwert. Inhalt, der über die Begrenzung eines Elements hinausragt, bleibt sichtbar und kann benachbarte Elemente überlagern.
div {
width: 250px;
height: 100px;
overflow: visible;
}
Dieser Text ist länger als die Box hoch ist.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quisquam, voluptatum, quibusdam.
Doloribus, voluptate, doloremque. Lorem ipsum dolor sit amet, consectetur adipisicing elit.
Eaque praesentium molestias magni. Accusantium, dolorem, temporibus provident pariatur
consectetur.
Wichtig: Überstehender Inhalt kann andere Elemente optisch überlagern, ohne deren Position zu verändern.
2. overflow: hidden
Alles, was über den Rand eines Elements hinausragt, wird abgeschnitten und ist nicht mehr sichtbar. Es werden keine Scrollbars angezeigt.
div {
width: 250px;
height: 100px;
overflow: hidden;
}
Dieser Text ist länger als die Box hoch ist. Er wird abgeschnitten. Alles, was nicht in die
Box passt, bleibt unsichtbar.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quisquam, voluptatum, quibusdam.
Doloribus, voluptate, doloremque. Lorem ipsum dolor sit amet, consectetur adipisicing elit.
Eaque praesentium molestias magni. Accusantium, dolorem, temporibus provident pariatur
consectetur.
Typische Einsatzbereiche:
- Bilder zuschneiden, ohne sie zu verkleinern
- Animationen, die ausserhalb einer Box starten oder enden
3. overflow: scroll
Es werden immer Scrollbars angezeigt – auch wenn der Inhalt vollständig in das Element passt.
div {
width: 250px;
height: 100px;
overflow: scroll;
}
Dieser Text ist länger als die Box hoch ist. Scrollbars werden immer angezeigt – unabhängig
davon, ob sie tatsächlich benötigt werden.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quisquam, voluptatum, quibusdam.
Doloribus, voluptate, doloremque. Lorem ipsum dolor sit amet, consectetur adipisicing elit.
Eaque praesentium molestias magni. Accusantium, dolorem, temporibus provident pariatur
consectetur.
Hinweis: Auf macOS werden Scrollbars je nach Systemeinstellung oft nur während des Scrollens angezeigt. Auf Windows sind sie meist dauerhaft sichtbar.
4. overflow: auto
Scrollbars werden nur bei Bedarf angezeigt. Passt der Inhalt vollständig in das Element, bleiben sie ausgeblendet.
div {
width: 250px;
height: 100px;
overflow: auto;
}
Dieser Text ist länger als die Box hoch ist. Da der Inhalt nicht vollständig in das Element passt, erscheint automatisch eine Scrollbar. Wird weiterer Inhalt hinzugefügt, wächst das Element nicht mit, sondern bleibt auf seiner definierten Höhe. So kann der gesamte Inhalt bequem innerhalb des Elements gescrollt werden.
Empfehlung: overflow: auto ist in den meisten Fällen die beste
Wahl, da Scrollbars nur angezeigt werden, wenn sie tatsächlich benötigt werden.
5. overflow: clip
Wie hidden, jedoch ohne Scroll-Möglichkeit. Der überstehende Inhalt
wird abgeschnitten und lässt sich auch mit JavaScript nicht scrollen.
div {
width: 250px;
height: 100px;
overflow: clip;
}
Dieser Text wird wie bei hidden abgeschnitten. Mit clip lässt sich der verborgene Inhalt auch per JavaScript nicht in den sichtbaren Bereich scrollen.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quisquam, voluptatum, quibusdam. Doloribus, voluptate, doloremque. Lorem ipsum dolor sit amet, consectetur adipisicing elit.
Unterschied zu hidden:
hidden– Inhalt wird abgeschnitten, kann aber über JavaScript gescrollt werden.clip– Inhalt wird abgeschnitten und kann auch über JavaScript nicht gescrollt werden.
Einsatz: Sinnvoll, wenn Inhalte konsequent abgeschnitten werden sollen und kein Scrollen möglich sein darf.
6. overflow-x und overflow-y
Mit overflow-x und overflow-y lassen sich horizontaler und vertikaler
Overflow unabhängig voneinander steuern.
div {
white-space: nowrap; /* Zeilenumbruch verhindern */
overflow-x: auto; /* horizontal scrollen */
overflow-y: hidden; /* vertikalen Inhalt abschneiden */
}
The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.
Wichtig: Die beiden Achsen beeinflussen sich gegenseitig. Wird
visible mit einem scrollbaren Overflow-Wert kombiniert, behandelt der Browser
visible automatisch als auto.
Typische Einsatzbereiche sind breite Tabellen, Codeblöcke oder Bildergalerien, die nur horizontal gescrollt werden sollen.
7. overflow-inline und overflow-block
overflow-inline und overflow-block sind die logischen Varianten von
overflow-x und overflow-y. Sie orientieren sich an der Schreibrichtung
statt an einer festen horizontalen oder vertikalen Achse.
overflow-inline– steuert den Overflow in Leserichtung, bei deutschen Texten normalerweise von links nach rechts.overflow-block– steuert den Overflow in Blockrichtung, bei deutschen Texten normalerweise von oben nach unten.
.element {
overflow-inline: auto;
overflow-block: hidden;
}
Vorteil: Die Angaben passen sich automatisch an die Schreibrichtung und den verwendeten Writing Mode an.
Praktische Beispiele
1. Scrollbarer Container
Ideal für Bereiche mit viel Inhalt, die innerhalb einer festen Höhe scrollbar bleiben sollen.
Scrollbarer Content
Weit hinten, hinter den Wortbergen, fern der Länder Vokalien und Konsonantien leben die Blindtexte. Abgeschieden wohnen sie in Buchstabhausen an der Küste des Semantik, eines großen Sprachozeans. Ein kleines Bächlein namens Duden fließt durch ihren Ort und versorgt sie mit den nötigen Regelialien. Es ist ein paradiesmatisches Land, in dem einem gebratene Satzteile in den Mund fliegen. Nicht einmal von der allmächtigen Interpunktion werden die Blindtexte beherrscht – ein geradezu unorthographisches Leben. Eines Tages aber beschloß eine kleine Zeile Blindtext, ihr Name war Lorem Ipsum, hinaus zu gehen in die weite Grammatik. Der große Oxmox riet ihr davon ab, da es dort wimmele von bösen Kommata, wilden Fragezeichen und hinterhältigen Semikoli, doch das Blindtextchen ließ sich nicht beirren. Es packte seine sieben Versalien, schob sich sein Initial in den Gürtel und machte sich auf den Weg. Als es die ersten Hügel des Kursivgebirges erklommen hatte, warf es einen letzten Blick zurück auf die Skyline seiner Heimatstadt Buchstabhausen, die Headline von Alphabetdorf und die Subline seiner eigenen Straße, der Zeilengasse. Wehmütig lief ihm eine rhetorische Frage über die Wange, dann setzte es seinen Weg fort. Unterwegs traf es eine Copy.
.scrollable {
height: 300px;
overflow-y: auto;
}
Achtung: Auf kleinen Screens hat es vielleicht zu viele Scrollbars.
2. Horizontales Scrollen
Typisch für breite Tabellen, Codeblöcke oder Bildergalerien.
.horizontal-scroll {
overflow-x: auto;
white-space: nowrap;
}
.item {
display: inline-block;
}
3. Sticky Header mit Scroll
Der Header bleibt innerhalb des scrollbaren Containers sichtbar.
Sticky Header
Scroll nach unten – Header bleibt kleben!
Weit hinten, hinter den Wortbergen, fern der Länder Vokalien und Konsonantien leben die Blindtexte. Abgeschieden wohnen sie in Buchstabhausen an der Küste des Semantik, eines großen Sprachozeans. Ein kleines Bächlein namens Duden fließt durch ihren Ort und versorgt sie mit den nötigen Regelialien. Es ist ein paradiesmatisches Land, in dem einem gebratene Satzteile in den Mund fliegen. Nicht einmal von der allmächtigen Interpunktion werden die Blindtexte beherrscht – ein geradezu unorthographisches Leben. Eines Tages aber beschloß eine kleine Zeile Blindtext, ihr Name war Lorem Ipsum, hinaus zu gehen in die weite Grammatik. Der große Oxmox riet ihr davon ab, da es dort wimmele von bösen Kommata, wilden Fragezeichen und hinterhältigen Semikoli, doch das Blindtextchen ließ sich nicht beirren. Es packte seine sieben Versalien, schob sich sein Initial in den Gürtel und machte sich auf den Weg. Als es die ersten Hügel des Kursivgebirges erklommen hatte, warf es einen letzten Blick zurück auf die Skyline seiner Heimatstadt Buchstabhausen, die Headline von Alphabetdorf und die Subline seiner eigenen Straße, der Zeilengasse. Wehmütig lief ihm eine rhetorische Frage über die Wange, dann setzte es seinen Weg fort. Unterwegs traf es eine Copy. Die Copy warnte das Blindtextchen, da, wo sie herkäme wäre sie
.container {
height: 400px;
overflow-y: auto;
}
.sticky-header {
position: sticky;
top: 0;
background: deeppink;
z-index: 10;
}
Typische Fehler
overflow: hiddenauf dembodyverhindert das Scrollen der gesamten Seite (z. B. bei Modals jedoch gewollt).overflow: scrollstattauto– unnötige Scrollbars werden angezeigt.- Vergessen, dass die Grösse eines Elements begrenzt sein muss, damit Inhalt abgeschnitten oder ein eigener Scrollbereich sichtbar wird.
Kurz gesagt
overflow: visibleist der Standardwert und zeigt überstehenden Inhalt an.overflow: hiddenschneidet überstehenden Inhalt ab.overflow: scrollzeigt Scrollbars immer an.overflow: autoist meist die beste Wahl.overflow: clipschneidet Inhalt ab und verhindert auch das Scrollen per JavaScript.- Die Kurzschreibweise
overflowkann einen oder zwei Werte enthalten. overflow-xundoverflow-ysteuern die festen Achsen.overflow-inlineundoverflow-blockorientieren sich an der Schreibrichtung.
Verwandte Themen
- CSS Scroll-Properties – Scrollverhalten, Snap-Punkte und Abstände zu Scroll-Zielen.
- Scrollbars – Breite, Farbe und Platz für Scrollleisten.
- Box Model – Grösse, Innenabstand, Rahmen und Aussenabstand von Elementen.
- Display – Verhalten von Elementen im Layout.