Jedes HTML-Element ist eine Box. Und manchmal ist der Inhalt größer als die Box selbst – zum Beispiel ein langer Text in einem Container mit fixer Höhe, oder ein Bild das breiter ist als sein Elternelement. Was dann passiert, steuert die CSS-Eigenschaft overflow.
Die Sprungmarken auf dieser Seite: Die Werte im Überblick, X und Y getrennt steuern, Typische Anwendungsfälle.
Die Werte im Überblick
overflow kennt vier Hauptwerte:
visible– Standardwert. Der Inhalt ragt einfach aus dem Container heraus, ohne abgeschnitten zu werden.hidden– Alles was über den Rand hinausgeht wird abgeschnitten und ist nicht sichtbar. Kein Scrollbalken.scroll– Es erscheint immer ein Scrollbalken, auch wenn der Inhalt gar nicht überläuft.auto– Ein Scrollbalken erscheint nur dann, wenn der Inhalt tatsächlich überläuft. In der Regel die beste Wahl.
.box {
width: 200px;
height: 100px;
}
/* Inhalt ragt heraus – Standardverhalten */
.box-visible { overflow: visible; }
/* Inhalt wird abgeschnitten */
.box-hidden { overflow: hidden; }
/* Scrollbalken immer sichtbar */
.box-scroll { overflow: scroll; }
/* Scrollbalken nur bei Bedarf */
.box-auto { overflow: auto; }
X und Y getrennt steuern
Du kannst horizontalen und vertikalen Überlauf unabhängig voneinander steuern – mit overflow-x und overflow-y. Das ist zum Beispiel nützlich, wenn du einen Container hast der vertikal scrollbar sein soll, aber horizontal nichts herausragen darf.
.code-block {
overflow-x: auto; /* horizontal scrollen wenn nötig */
overflow-y: hidden; /* vertikal nichts herausragen lassen */
white-space: pre; /* Zeilenumbrüche verhindern */
}
Ein häufiger Fall dafür sind Codeblöcke auf der eigenen Seite – langer Code soll horizontal gescrollt werden können, aber der Rest der Seite bleibt davon unberührt.
Typische Anwendungsfälle
overflow: hidden wird oft eingesetzt um abgerundete Ecken sauber zu halten – ohne es würde ein Bild oder ein Kindelement über den border-radius hinausragen:
.card {
border-radius: 12px;
overflow: hidden; /* Bild bleibt innerhalb der abgerundeten Ecken */
}
.card img {
width: 100%;
display: block;
}
overflow: auto eignet sich gut für Textbereiche mit fixer Höhe, zum Beispiel eine Beschreibungsbox in einem Produktlayout:
.beschreibung {
height: 120px;
overflow: auto; /* Scrollbalken nur wenn der Text länger ist */
padding: 1rem;
background: #f5f5f5;
}
Ein kleiner Hinweis noch: Wenn du overflow auf einen Container setzt, wird dieser automatisch zu einem sogenannten Block Formatting Context. Das beeinflusst unter anderem, wie floatende Kindelemente berechnet werden – in modernen Layouts mit Flexbox und Grid spielt das aber kaum noch eine Rolle.