Différence entre HTML "overflow: auto" et "overflow: scroll"

123

Lorsque j'étudiais les overflowvaleurs de la propriété, je suis tombé sur ces deux valeurs: autoet scroll, qui ajoute des barres de défilement si le contenu déborde de l'élément.

Quelqu'un pourrait-il m'expliquer quelle est la différence entre eux?

GirishK
la source

Réponses:

185

Auto n'affichera une barre de défilement que lorsqu'un contenu est coupé.

Le défilement affichera cependant toujours la barre de défilement même si tout le contenu correspond et que vous ne pouvez pas le faire défiler.

Johan Davidsson
la source
2
Il ne semble pas y avoir de différence, du moins sur la dernière version de Safari: même avec scroll, je ne vois pas la barre de défilement si le contenu convient. Mais, juste pour être sûr, j'ai choisi autoparce que je ne veux afficher une barre de défilement que lorsque le contenu est coupé.
ma11hew28
1
@MattDiPasquale OS X et Windows affichent les barres de défilement de différentes manières. Vous utilisez probablement Safari sur Mac, n'est-ce pas? OS X masque souvent la barre de défilement jusqu'à ce que vous faites réellement défiler.
Johan Davidsson
1
Il semble y avoir plus de différence que cela, overlow: scrollrend la boîte plus mince: jsbin.com/letog/2/edit
Dmitri Zaitsev
Dans Safari 12 (probablement les versions antérieures aussi), à moins que les barres de défilement ne soient configurées pour s'afficher en permanence overflow: scrollet qu'elles overflow: autosoient fonctionnellement identiques lorsque le conteneur est suffisamment grand pour contenir le contenu.
Luke Worth
15

overflow: scrollmasquera tout le contenu débordant et fera apparaître des barres de défilement sur l'élément en question. Si le contenu ne déborde pas, les barres de défilement seront toujours visibles, mais désactivées.

overflow: auto est très similaire, mais les barres de défilement n'apparaissent que lorsque le contenu déborde.

Il y a une explication similaire à cela ici , avec quelques captures d'écran pour illustrer ce point.

James Allardice
la source
2

Jetez un œil aux astuces CSS .

Auto affichera la barre de défilement si et seulement si le contenu déborde; mais scroll affichera toujours la barre de défilement, que le contenu déborde ou non.

samir chauhan
la source
1

Ajout d'un point à la réponse, Overflow:autopas travaillé dans IE7 lorsque la position du conteneur est absolue Position débordement relatif IE7 . Mais le réglage Overflow:scrollfonctionne

Kira
la source
0

débordement: le défilement affichera la barre de défilement horizontale et verticale même si vous n'en avez pas besoin. while, overflow: auto affichera la barre de défilement dont votre div a besoin. Donc, fondamentalement, auto vous aidera à vous débarrasser des deux scollbar. Voici plus de cela:

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

manish joshi
la source