221 votes

Rendre la barre de défilement principale toujours visible

Quel CSS est nécessaire pour maintenir la barre de défilement verticale du navigateur visible lorsque l'utilisateur visite une page web (lorsque la page n'a pas suffisamment de contenu pour déclencher l'activation de la barre de défilement) ?

1 votes

382voto

Corv1nus Points 1884
html {
    overflow: -moz-scrollbars-vertical; 
    overflow-y: scroll;
}

Cela rend la barre de défilement toujours visible et active uniquement lorsque nécessaire.

Mise à jour: Si ce qui précède ne fonctionne pas, vous pouvez simplement utiliser ceci à la place.

html {
    overflow-y:scroll;
}

3 votes

Avez-vous une idée de quelle version de FF a apporté le support de overflow-y? Il semble que -moz-scrollbars-vertical soit obsolète au profit de la propriété overflow-y.

0 votes

Je pense que Internet Explorer 6.x+, Firefox 1.5+, si je me rappelle correctement. J'utilise le code ci-dessus et cela fonctionne dans FF1.5-3.5.1 et IE6-8 pour moi.

0 votes

Merci, +1. J'avais oublié cette propriété -moz.

34voto

Frank Lämmer Points 523

Les choses ont changé ces dernières années. Les réponses ci-dessus ne sont plus valables dans tous les cas. Apple pousse les barres de défilement disparues partout. Safari, Chrome et même Firefox sur MacOs (et iOs) n'affichent les barres de défilement que lorsqu'on fait réellement défiler la page - je ne sais pas pour Windows/IE actuel. Cependant, il existe des façons non standard de styliser les barres de défilement sur Webkit (IE a abandonné cela il y a longtemps).

0 votes

Mais il se dégrade élégamment sur ces nouveaux ?

3 votes

Merci pour cette excellente remarque sur les barres de défilement qui disparaissent. Pour moi, la raison de garder la barre de défilement visible était d'éviter ce léger mais très perceptible et très agaçant à-coup lorsque le contenu passe de défilant à fixe. Avec les barres de défilement qui disparaissent, elles ne secouent pas le corps lorsqu'elles apparaissent et disparaissent donc c'est bien pour moi. Mais merci pour cette excellente remarque.

9 votes

Du point de vue de l'expérience utilisateur, la plupart du temps nous voulons que la barre de défilement soit visible. Selon la tendance actuelle, s'il n'est pas visible, il faut effectuer une étape supplémentaire pour "essayer" une liste visible pour en voir plus. Un indice visuel supplémentaire indiquant que la liste déroulante ou liste contient plus d'éléments n'est pas nécessaire si les gens voient une barre de défilement.

27voto

Ionuț G. Stan Points 62482
html {
    overflow-y: scroll;
}

Est-ce ce que tu veux?

Malheureusement, Opera 9.64 semble ignorer cette déclaration CSS lorsqu'elle est appliquée à HTML ou BODY, bien qu'elle fonctionne pour d'autres éléments de niveau bloc comme DIV.

14voto

Marco Demaio Points 8667
html {height: 101%;}

J'utilise cette solution compatible avec tous les navigateurs (note : j'utilise toujours la déclaration DOCTYPE en 1ère ligne, je ne sais pas si cela fonctionne en mode quirks, je ne l'ai jamais testé).

Cela affichera toujours une barre de défilement verticale ACTIVE dans chaque page, la barre de défilement verticale sera scrollable seulement de quelques pixels.

Lorsque le contenu de la page est plus court que la zone visible du navigateur, vous verrez quand même la barre de défilement verticale active, et elle sera scrollable seulement de quelques pixels.

Si vous êtes obsédé par la validation CSS (je suis obsédé uniquement par la validation HTML), en utilisant cette solution votre code CSS sera également valide pour W3C car vous n'utilisez pas d'attributs CSS non standards comme -moz-scrollbars-vertical

1 votes

Solution élégante

0 votes

Pas une solution élégante, le fait qu'elle soit défilable de seulement quelques pixels est irritant.

3voto

Jazzepi Points 1328

J'ai pu faire fonctionner cela en l'ajoutant à la balise body. C'était plus pratique pour moi car je n'ai rien sur l'élément html.

body {
    overflow-y: scroll;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X