Überlauf

Wenn Inhalte über das übergeordnete Element hinausgehen, haben Sie viele Möglichkeiten, wie Sie damit umgehen können. Sie können scrollen, um zusätzlichen Platz zu schaffen, die überlaufenden Kanten zu kürzen, den Rand mit Auslassungspunkten zu kennzeichnen und vieles mehr. Überlauf ist besonders wichtig bei der Entwicklung für Telefonanwendungen und mehrere Bildschirmgrößen.

In CSS gibt es zwei verschiedene Zuschneideoptionen: text-overflow eignet sich für einzelne Textzeilen und die overflow-Eigenschaften helfen, den Überlauf im Box-Modell zu steuern.

Überlauf mit einer Zeile und text-overflow

Verwenden Sie die Property text-overflow für alle Elemente, die Textknoten enthalten, z. B. einen Absatz (<p>). Hier wird festgelegt, wie der Text angezeigt wird, wenn er nicht in den verfügbaren Bereich des Elements passt. Der gesamte sichtbare HTML-Text auf einer Seite befindet sich in Textknoten. Für die Verwendung von text-overflow ist eine einzelne Zeile mit nicht umgebrochenem Text erforderlich. Daher müssen Sie overflow auf hidden festlegen und einen white-space-Wert verwenden, der das Umbrechen verhindert.

p {
   
text-overflow: ellipsis;
   
overflow: hidden;
   
white-space: nowrap;
}

Überlaufeigenschaften verwenden

Überlaufeigenschaften werden für ein Element festgelegt, um zu steuern, was passiert, wenn seine untergeordneten Elemente mehr Platz benötigen, als ihm zur Verfügung steht. Das kann beabsichtigt sein, z. B. bei einer interaktiven Karte wie Google Maps, bei der ein Nutzer ein großes Bild schwenken kann, das auf eine bestimmte Größe zugeschnitten ist. Es kann auch unbeabsichtigt sein, z. B. in einer Chat-App, in der der Nutzer eine lange Nachricht eingibt, die nicht in die Textblase passt.

Sie können sich den Überlauf in zwei Teilen vorstellen. Das übergeordnete Element hat einen fest beschränkten Bereich, der sich nicht ändert. Sie können sich dies als ein Fenster vorstellen. Die untergeordneten Elemente sind Inhalte, die mehr Platz vom übergeordneten Element benötigen. Sie können sich das als das vorstellen, was Sie durch das Fenster sehen. Die Verwaltung des Überlaufs trägt dazu bei, wie die Fenster diese Inhalte umrahmen.

Scrollen auf der vertikalen und horizontalen Achse

Mit der Eigenschaft overflow-y wird der physische Überlauf entlang der vertikalen Achse des Darstellungsbereichs des Geräts gesteuert, sodass das Gerät nach oben und unten gescrollt wird.

Mit der Eigenschaft overflow-x wird der Überlauf entlang der horizontalen Achse des Geräte-Viewports gesteuert, also das Scrollen nach links und rechts.

Logische Eigenschaften für die Scrollrichtung

Unterstützte Browser

  • Chrome: Nicht unterstützt.
  • Edge: nicht unterstützt. <ph type="x-smartling-placeholder">
  • Firefox: 69. <ph type="x-smartling-placeholder">
  • Safari: Nicht unterstützt. <ph type="x-smartling-placeholder">

Quelle

Mit den Eigenschaften overflow-inline und overflow-block wird der Überlauf basierend auf der Dokumentrichtung und dem Schreibmodus festgelegt.

Die Kurzschreibweise für overflow

Mit dem Kurzzeichen overflow werden sowohl der overflow-x- als auch der overflow-y-Stil in einer Zeile festgelegt:

overflow: hidden scroll;

Wenn zwei Keywords angegeben werden, gilt das erste für overflow-x und das zweite für overflow-y. Andernfalls wird für overflow-x und overflow-y derselbe Wert verwendet.

Werte

Sehen wir uns an, welche Werte und Keywords für die overflow-Properties verfügbar sind.

overflow: visible (Standard)
Ohne das Attribut wird overflow: visible der Standardwert für das Web verwendet. So wird sichergestellt, dass Inhalte niemals versehentlich ausgeblendet werden, und die Grundprinzipien „Inhalte niemals ausblenden“ oder „Sichere Layouts mit präzisen Layouts“ werden eingehalten.
overflow: hidden
Bei overflow: hidden wird der Inhalt in der angegebenen Richtung zugeschnitten und es werden keine Scrollleisten angezeigt.
overflow: scroll
Mit
overflow: scroll können Nutzer mithilfe von Bildlaufleisten durch Inhalte scrollen. Auch wenn die Inhalte derzeit nicht überlaufen, sind Bildlaufleisten vorhanden. Dies ist eine gute Möglichkeit, zukünftige Layoutänderungen zu reduzieren, wenn ein Container in Zukunft beispielsweise aufgrund einer Größenänderung scrollbar sein kann, und die Nutzer visuell auf scrollbare Bereiche vorzubereiten.
overflow: clip
Wie bei overflow: hidden wird der Inhalt mit overflow: clip am Innenrand des Elements abgeschnitten. Der Unterschied zwischen clip und hidden besteht darin, dass mit dem Keyword clip auch das Scrollen verboten wird, einschließlich programmatischem Scrollen.
overflow: auto
Zu guter Letzt ist der am häufigsten verwendete Wert overflow: auto. Dadurch werden die Einstellungen des Nutzers berücksichtigt und bei Bedarf Bildlaufleisten angezeigt. Diese werden jedoch standardmäßig ausgeblendet und der Nutzer und der Browser haben die Verantwortung für das Scrollen.

Scrollen und Überlauf

Viele dieser overflow-Verhaltensweisen führen zu einer Bildlaufleiste. Es gibt jedoch einige spezielle Scrollfunktionen und ‐eigenschaften, mit denen Sie das Scrollen im Überlaufcontainer steuern können.

Scrollen und Barrierefreiheit

Der scrollbare Bereich muss fokussierbar sein, damit Nutzer mit Tastatur den Tabulator auf das Feld drücken und dann mit den Pfeiltasten scrollen können.

Damit ein Bildlauffeld den Fokus akzeptieren kann, fügen Sie tabindex="0", einen Namen mit dem Attribut aria-labelledby und ein entsprechendes role-Attribut hinzu. Beispiel:

<div tabindex="0" role="region" aria-labelledby="id-of-descriptive-text">
    content
</div>

Anschließend kann mithilfe des CSS-Codes angegeben werden, dass das Feld im Fokus ist. Die Eigenschaft outline gibt einen visuellen Hinweis darauf, dass das Feld nun scrollbar ist.

In Using CSS to Enforce Accessibility zeigt Adrian Roselli, wie Sie mit CSS Rückschritte bei der Barrierefreiheit verhindern können. So können Sie beispielsweise das Scrollen nur aktivieren und den Fokusindikator hinzufügen, wenn die richtigen Attribute verwendet werden. Mit den folgenden Regeln ist das Feld nur scrollbar, wenn es die Attribute tabindex, aria-labelledby und role hat.

[role][aria-labelledby][tabindex] {
 
overflow: auto;
}

[role][aria-labelledby][tabindex]:focus {
 
outline: .1em solid blue;
}

Positionierung der Bildlaufleiste im Boxmodell

Bildlaufleisten belegen Platz im Ränderbereich und können um den Platz konkurrieren, wenn inline und nicht overlaid verwendet wird. Im Modul zum Boxmodell erfahren Sie mehr über diese potenzielle Ursache für Layoutänderungen.

Root-Scroller und impliziter Scroller

Einige Scroller haben ein Pull-to-Refresh-Verhalten und andere spezielle Verhaltensweisen, insbesondere bei der Entwicklung für mobile und hybride Anwendungen. Dieses Scrollverhalten findet beim Stamm-Scroller statt. Auf einer Seite gibt es immer nur einen einzigen Stamm-Scroller. Standardmäßig ist das documentElement der Root-Scroller der Seite. Wenn Sie jedoch ändern, welches Element der Root-Scroller ist, können die speziellen Verhaltensweisen auf andere Scroller als das documentElement (Dokumentelement) angewendet werden. Wir nennen diesen neuen Scroller den impliziten Root-Scroller.

Wenn Sie einen Root-Scroller erstellen möchten, können Sie die sogenannte Scroller-Beförderung verwenden. Positionieren Sie dazu einen Container als fixiert, sodass er den gesamten Darstellungsbereich abdeckt und im Z-Index über einem Scroller liegt. Hier können Sie einen Root-Scroller mit einem verschachtelten impliziten Scroller vergleichen.

Im Video wird ein Root-Scroller mit Sprungverhalten und neuen Stiloptionen
mit dem Scrollen eines impliziten Scrollers ohne erweitertes Scrollverhalten verglichen.

scroll-behavior

Unterstützte Browser

  • Chrome: 61. <ph type="x-smartling-placeholder">
  • Edge: 79. <ph type="x-smartling-placeholder">
  • Firefox: 36. <ph type="x-smartling-placeholder">
  • Safari: 15.4. <ph type="x-smartling-placeholder">

Quelle

Mit scroll-behavior können Sie das browsergesteuerte Scrollen zu Elementen aktivieren. Hier können Sie angeben, wie die In-Page-Navigation wie .scrollTo() oder Links gehandhabt wird.

Dies ist besonders nützlich, wenn das Scrollverhalten der Nutzer in Verbindung mit prefers-reduced-motion festgelegt wird.

@media (prefers-reduced-motion: no-preference) {
 
.scroll-view {
   
scroll-behavior: auto;
 
}
}

overscroll-behavior

Unterstützte Browser

  • Chrome: 63.
  • Edge: 18. <ph type="x-smartling-placeholder">
  • Firefox: 59.
  • Safari: 16.

Quelle

Wenn Sie schon einmal das Ende eines modalen Overlays erreicht, weitergescrollt und festgestellt haben, dass sich die Seite hinter dem Overlay bewegt hat, dann ist das die Scroll-Kette oder das Aufsteigen zum übergeordneten Scroll-Container. Mit der Eigenschaft overscroll-behavior können Sie verhindern, dass das Überlauf-Scrollen in einen übergeordneten Container eindringt (dies wird als Scroll-Kettenreaktion bezeichnet).

Wissen testen

Testen Sie Ihr Wissen über Overflow

Sind Text- und Elementüberlauf dasselbe?

falsch
wahr

Für die Eigenschaft overflow sind zwei Keywords zulässig. Für welche Achse befindet sich das erste Keyword?

Branche
horizontal

Welchen Bereich im Box-Modell belegen Bildlaufleisten, wenn sie angezeigt und inline sind?

Inhaltsfeld
Ränder
Randfeld
Rahmen

Welche Eigenschaft verwenden Sie, um bei verschachtelten impliziten Scrollern zusätzliche Dynamik zu vermeiden?

overscroll-effect
scroll-behavior
overscroll-behavior
scroll-hint
scroll-padding

Ressourcen

Overflow And Data Loss In CSS von Smashing Magazine