Unterschied zwischen HTML "Überlauf: Auto" und "Überlauf: Scrollen"

123

Als ich overflowdie Werte der Eigenschaft studierte , stieß ich auf diese beiden Werte: autound scroll, die Bildlaufleisten hinzufügen, wenn der Inhalt das Element überläuft.

Könnte mir bitte jemand erklären, was der Unterschied zwischen ihnen ist?

GirishK
quelle

Antworten:

185

Auto zeigt nur dann eine Bildlaufleiste an, wenn Inhalte abgeschnitten sind.

Scroll zeigt jedoch immer die Bildlaufleiste an, auch wenn alle Inhalte passen und Sie nicht scrollen können.

Johan Davidsson
quelle
2
Zumindest bei der neuesten Version von Safari scheint es keinen Unterschied zu geben: Selbst mit scrollsehe ich die Bildlaufleiste nicht, wenn der Inhalt passt. Aber um sicher zu gehen, habe ich mich entschieden, autoweil ich nur dann eine Bildlaufleiste anzeigen möchte, wenn der Inhalt abgeschnitten ist.
ma11hew28
1
@MattDiPasquale OS X und Windows zeigen Bildlaufleisten auf unterschiedliche Weise an. Sie verwenden wahrscheinlich Safari auf dem Mac, oder? OS X verbirgt häufig die Bildlaufleiste, bis Sie tatsächlich scrollen.
Johan Davidsson
1
Es scheint mehr Unterschiede zu geben, overlow: scrollmacht die Box dünner: jsbin.com/letog/2/edit
Dmitri Zaitsev
In Safari 12 (wahrscheinlich auch in früheren Versionen), sofern die Bildlaufleisten nicht so konfiguriert sind, dass sie immer angezeigt werden, overflow: scrollund overflow: autofunktional identisch sind, wenn der Container groß genug ist, um den Inhalt aufzunehmen.
Luke Worth
15

overflow: scrollblendet den gesamten überfüllten Inhalt aus und führt dazu, dass Bildlaufleisten auf dem betreffenden Element angezeigt werden. Wenn der Inhalt nicht überläuft, sind die Bildlaufleisten weiterhin sichtbar, aber deaktiviert.

overflow: auto ist sehr ähnlich, aber die Bildlaufleisten werden nur angezeigt, wenn der Inhalt überläuft.

Es gibt eine ähnliche Erklärung dafür hier mit einigen Screenshots , den Punkt zu illustrieren.

James Allardice
quelle
2

Schauen Sie sich CSS Tricks an .

Auto zeigt genau dann eine Bildlaufleiste an, wenn der Inhalt überläuft. Beim Scrollen wird jedoch immer die Bildlaufleiste angezeigt, unabhängig davon, ob der Inhalt überläuft oder nicht.

Samir Chauhan
quelle
1

Hinzufügen eines Punktes zur Antwort, Overflow:autofunktioniert in IE7 nicht, wenn die Position des Containers absolut ist. Position relativer Überlauf IE7 . Aber die Einstellung Overflow:scrollfunktioniert

Kira
quelle
0

Überlauf: Scrollen zeigt sowohl die horizontale als auch die vertikale Bildlaufleiste an, auch wenn Sie die eine oder andere nicht benötigen. while, overflow: auto zeigt die Bildlaufleiste an, die Ihr div benötigt. Im Grunde hilft Ihnen Auto dabei, beide Scollbars loszuwerden. Hier ist mehr davon:

https://css-tricks.com/the-css-overflow-property/

manish joshi
quelle