Der eigene Online-Shop für Profi-Fotografen. Für Fotografen, die keine Zeit zu verlieren haben.

CSS-Eigenschaft: overflow, Kategorien: Bildschirm­darstellung (allgemein), Visual effects (CSS 2.1), Basic Box Model (CSS 3)

Elementenüberfluss (allgemein)

Steuert, ob und wie zu viel Inhalt in einer Box angezeigt wird und ob das Element Scrollbalken bekommt.

CSS-Eigenschaft: overflow
KurzbeschreibungWerteStandardwertKategorieHinweis
Elementenüberfluss (allgemein)
  • visible
  • hidden
  • scroll
  • auto
  • no-display(CSS 3)
  • no-content(CSS 3)
  • inherit
visible
Allgemein:
Bildschirm­darstellung
CSS 2.1:
Visual effects
CSS 3:
Basic Box Model
 

Folgendes ist beim Einsatz von overflow zu beachten:

  • Ohne weitere Angaben nehmen HTML-Elemente stets so viel Platz ein, wie sie benötigen. Erst wenn umgebene HTML-Elemente eine geringere Höhe oder Breite haben, als der darin befindliche Inhalt, kommt overflow zu tragen.
  • Falls Höhen oder Breiten von Boxen definiert sind, kann es zum "Überhang" kommen. Falls zu viel Inhalt innerhalb der Breite umbrechen kann, entsteht der Überhang unten, falls ein inneres Element breiter ist als die umgebene Breite, auch ein seitlicher Überhang nach rechts (beziehungsweise in Richtung der Schreibrichtung).
  • Überfließende Inhalte sind ohne weitere Angaben sichtbar, dies entspricht dem Default-Wert overfow: visible. Wie im Beispiel Nr. 2 zu sehen ist, kann es zu Überlagerungen von folgenden HTML-Elementen kommen.
  • overflow: auto steuert, dass Inhalte in einer Box mit definierter Höhe oder Breite bei Bedarf einen Scrollbalken bekommen. Falls die HTML-Elemente innerhalb der verfügbaren Breite umbrechen können, entsteht ein vertikaler Scrollbalken (siehe Beispiel Nr. 3). Falls ein Element breiter ist als die umgebene Box, kann auch nur ein horizontaler Scrollbalken entstehen (Beispiel Nr. 4). Solange der Inhalte in die Box passen, wird beim Wert auto jedoch kein Scrollbalken angezeigt.
  • overflow: scroll generiert immer einen Scrollbalken, sowohl in horizontaler als auch in vertikaler Richtung. Auch wenn ausreichend Platz für den Inhalt da wäre, oder gar kein Inhalt in der Box vorhanden ist.
  • overflow: hidden zeigt den Inhalt nur innerhalb der definierten Höhe bzw. Breite an, überfließende Inhalte werden "abgeschnitten" und nicht dargestellt. Ebenfalls unterdrückt der Wert hidden auch Scrollbalken. Inhalte sind dann nicht mehr erreichbar (Es sei denn, man schaltet CSS ab oder geht in den Quelltext), von daher ist der Wert mit Vorsicht einzusetzen.
    overflow: hidden ähnelt der CSS-Eigenschaft clip. Unterschiede sind, dass clip das HTML-Element selber beeinflusst und den sichtbaren Bereich definiert, overflow hängt von der Menge des Inhalts ab und legt fest, wie mit überhängenden Inhalten umgegangen wird.
  • overflow-x und overflow-y mit dem Wert scroll sind nicht Teil vom CSS 2.1 Standard, werden aber von den gängigen Browsern unterstützt, selbst vom Internet Explorer 6. Dieser benötigt aber eine definierte Breite beziehungsweise Höhe im umgebenden Element, damit overflow-x und overflow-y richtig dargestellt werden können.
  • Generelles zum Einsatz von overflow:
    • Der Wert auto bzw. scroll wird in der Praxis gerne eingesetzt, falls Inhalte das vorgesehene Layout sprengen könnten. Aus Sicht der Usability kann das fatal sein, jeder Scrollbalken erschwert die Bedienung einer Webseite, vor allem horizontale Scrollbalken. Die Bedienung mit der Tastatur kann ebenfalls stark beeinträchtigt sein.
    • Schlimmer ist es, wenn der Wert hidden zur Einhaltung des Layouts eingesetzt wird, falls keine Scrollbalken auftreten sollen. Inhalte, gerade wenn Datenquellen dynamisch sind und die Längen variieren, können teilweise oder auch weitgehend in den nicht sichtbaren Bereich verschwinden. Sind dort Formularelemente oder Links vorhanden, sind diese nicht mehr erreichbar, die Bedienbarkeit einer Seite kann damit zerstört sein.
    • Sinnvoll kann ein overflow: hidden sein, falls zu große Grafiken ohne weiteren Informationswert oder ein <iframe> mit einer Social-Network-Link oder einer Werbung die Dimensionen einer Seite sprengen. Der Einsatz sollte aber in jedem Fall ausreichend geprüft werden, auch kleine Bildschirmauflösungen und die Umstellung auf einen Schriftgröße auf 200% sollten einen Test bestehen.
Browserunterstützung von overflow
Firefox
Firefox
Google Chrome
Google
Chrome
Internet Explorer
Internet
Explorer
Safari
Safari
Opera
Opera
CSS21
Version: 16Version: 25Version: 30Version: 31Version: 32
j
Version: 20Version: 30Version: 35Version: 36Version: 37
j
Version: 8Version: 9Version: 10Version: 11
j
Version: 4Version: 5Version: 6Version: 7
j
Version: 10Version: 11Version: 12
j

Weiterführende Informationen zu overflow:



Beispiele

HTML:

<div>
   <img src="img/ball-blau.png" alt="">
   <img src="img/ball-blau.png" alt="">
   <img src="img/ball-blau.png" alt="">
   <img src="img/ball-blau.png" alt="">
   <img src="img/ball-blau.png" alt="">
   <img src="img/ball-blau.png" alt="">
</div>

CSS:

div {
   border: 1px solid black;
}
/* Standardverhalten - HTML-Elemente nehmen soviel Platz ein, wie sie benötigen. Die umgebene Box passt sich in der Höhe der Menge des Inhalts an. */

Beispiel Nr. 1 So sieht's aus:

 

HTML:

<div class="doHeight">
   <img src="img/ball-blau.png" alt="">
   <img src="img/ball-blau.png" alt="">
   <img src="img/ball-blau.png" alt="">
   <img src="img/ball-blau.png" alt="">
   <img src="img/ball-blau.png" alt="">
   <img src="img/ball-blau.png" alt="">
</div>
<p>Auch wenn ein Text nur kurz ist, sollte trotzdem irgendwie versucht werden, eine nachvollziehbare Wortfolge anzuzeigen, da man mit zehn Mal fünf bis acht aneinanderhängende X keine reale Ausspielung erzeugt wird.</p>

CSS:

div.doHeight {
   height: 125px;
}
/* Bei einer definierten Höhe &quot;hängt&quot; zu viel Inhalt über den Rand der Box hinaus. Weiteres HTML kann überlagert werden. */

Beispiel Nr. 2 So sieht's aus:

Auch wenn ein Text nur kurz ist, sollte trotzdem irgendwie versucht werden, eine nachvollziehbare Wortfolge anzuzeigen, da man mit zehn Mal fünf bis acht aneinanderhängende X keine reale Ausspielung erzeugt wird.

 

HTML:

<div class="doHeight doAuto">
   <img src="img/ball-blau.png" alt="">
   <img src="img/ball-blau.png" alt="">
   <img src="img/ball-blau.png" alt="">
   <img src="img/ball-blau.png" alt="">
   <img src="img/ball-blau.png" alt="">
   <img src="img/ball-blau.png" alt="">
</div>

CSS:

.doAuto {
   overflow: auto;
}
/* Falls overflow: auto gesetzt ist, wird bei Bedarf ein Scrollbalken angezeigt. Solange die Inhalte in der vorhandenen Breite umbrechen können, entsteht der Scrollbalken nur in der vertikalen Richtung. */

Beispiel Nr. 3 So sieht's aus:

 

HTML:

<div class="doHeight doWidth doAuto">
   <img src="img/ball-blau.png" alt="">
</div>

CSS:

.doWidth {
   width: 65px;
}
/* Falls das innerere Element breiter ist als das umgebene, steuert overflow: auto, dass ein horizontaler Scrollbalken generiert wird.
Da in diesem Beispiel die Höhe nicht definiert ist, nimmt der Ball nach unten so viel Platz ein, wie er benötigt, ein vertikaler Scrollbalken bleibt aus. */

Beispiel Nr. 4 So sieht's aus:

 

HTML:

<div class="doHeight doScroll">
   <img src="img/ball-blau.png" alt="">
</div>

CSS:

div.doScroll {
   overflow: scroll;
   height: 200px;
}
/* overflow: scroll erzwingt immer Scrollbalken in beiden Richtungen, auch wenn die Menge des Inhalts dies nicht erfordern. */

Beispiel Nr. 5 So sieht's aus:

 

HTML:

<div class="doHeight doHidden">
   <img src="img/ball-blau.png" alt="">
   <img src="img/ball-blau.png" alt="">
   <img src="img/ball-blau.png" alt="">
   <img src="img/ball-blau.png" alt="">
   <img src="img/ball-blau.png" alt="">
   <img src="img/ball-blau.png" alt="">
</div>

CSS:

.doHidden {
   overflow: hidden;
}
/* overflow: hidden "schneidet" zu viel Inhalt einfach ab. */

Beispiel Nr. 6 So sieht's aus:

 

HTML:

<div class="doHeight doX-Scroll">
  <div>
    <img src="img/ball-blau.png" alt="">
    <img src="img/ball-blau.png" alt="">
    <img src="img/ball-blau.png" alt="">
    <img src="img/ball-blau.png" alt="">
    <img src="img/ball-blau.png" alt="">
    <img src="img/ball-blau.png" alt="">
  </div>
</div>

CSS:

.doX-Scroll div {
   width: 750px;
   margin: 10px;
   border: 3px solid red;
}
div.doX-Scroll {
   overflow: hidden;
   overflow-x: scroll;
   height: 100px;
}
/* Über overflow-x: scroll kann man einen Scrollbalken nur in horizontaler Richtung erzeugen. Allerdings muss vorher das generelle overflow auf hidden gesetzt werden, da ein horizontaler Scrollbalken bei Bedarf auch einen vertikalen triggert. */
 
* html .doX-Scroll {
   width: 350px;
}
/* Hack für den IE6 - damit overflow-x greift, benötigt das umgebende Element eine definierte Breite */

Beispiel Nr. 7 So sieht's aus:

 

HTML:

<div class="doHeight doY-Scroll">
  <div>
    <img src="img/ball-blau.png" alt="">
    <img src="img/ball-blau.png" alt="">
    <img src="img/ball-blau.png" alt="">
    <img src="img/ball-blau.png" alt="">
    <img src="img/ball-blau.png" alt="">
    <img src="img/ball-blau.png" alt="">
    <img src="img/ball-blau.png" alt="">
    <img src="img/ball-blau.png" alt="">
  </div>
</div>

CSS:

.doY-Scroll div {
   width: 450px;
   margin: 5px;
   border: 3px solid red;
}
.doY-Scroll {
   overflow: hidden;
   overflow-y: scroll;
}
/* Vergleichbar zu overflow-x. Damit der horizontale Scrollbalken nicht getriggert wird, muss das generelle overflow vorher auf hidden gesetzt werden. */
 
* html .doY-Scroll {
   width: 350px;
}
/* Hack für den IE6 - damit overflow-y greift, benötigt das umgebende Element eine definierte Breite. */

Beispiel Nr. 8 So sieht's aus:

 

HTML:

<div class="doRtL">
   <img src="img/ball-blau.png" alt="">
</div>

CSS:

.doRtL {
   direction: rtl;
   width: 30px;
}
/* Der Überfluss geht immer nach unten, ob er nach rechts oder links überfließt, hängt von der Schreibrichtung ab.  */

Beispiel Nr. 9 So sieht's aus:

 

Fehler melden

Diese Referenz ist ein Freizeitprojekt ohne aufwendiges Lektorat oder Vergleichbarem. Von daher lassen sich bei dem Umfang dieser Referenz trotzt größtmöglicher Sorgfalt Fehler nicht vermeiden.

Hilf, die Qualität dieser Seite zu verbessern! Sollte Dir ein Fehler auffallen, sei es in den Erklärungen, Beispielen oder den Informationen zum Browsersupport, seien es orthographische oder grammatikalische, sende eine kurze E-Mail an info@css-wiki.com. Auch Anregungen und Verbesserungsvorschläge sind jeder Zeit Willkommen. Jede E-Mail wird persönlich beantwortet!

Vielen Dank!

A-Z:

Schnell­auswahl

Seiten:

Letzte Änderung: 16. 10. 2017
Render Time: 0.123 sec.

Browser-Marktanteile