Rendere sempre visibile la barra di scorrimento principale


Risposte:


333
html {
    overflow: -moz-scrollbars-vertical; 
    overflow-y: scroll;
}

Ciò rende la barra di scorrimento sempre visibile e attiva solo quando necessario.

Aggiornamento: se quanto sopra non funziona, il solo utilizzo di questo potrebbe.

html {
    overflow-y:scroll;
}

3
Hai idea di quale versione di FF abbia portato supporto overflow-y? Come sembra che -moz-scrollbars-verticalè deprecato a favore della overflow-yproprietà.
Ionuț G. Stan,

Penso che Internet Explorer 6.x +, Firefox 1.5+ se ricordo bene. Sto usando il codice sopra e funziona per me in FF1.5-3.5.1 e IE6-8.
Corv1nus,

2
Esistono alternative al "salto di pagina" quando alcune pagine del tuo sito sono troppo piccole per avere una barra di scorrimento e altre lo sono? O è questa la "migliore pratica"? Devo ammetterlo, non vedo molte pagine sui nastri che non occupano una pagina intera.
Jess,

2
Non sono sicuro che sia una buona pratica ma, avendo barre di scorrimento su tutte le pagine e attivo solo quando necessario, per evitare il salto di pagina è di solito una soluzione accettabile. Tendo a preferire la barra di scorrimento costante rispetto al salto.
Corv1nus,

1
Per quelli (come me) che trovano lo styling htmlun po ' hack-y , nota che puoi usare lo pseudo-selettore strutturale :rootinvece di html. Vedi: developer.mozilla.org/en-US/docs/Web/CSS/:root
Rounin

31

Assicurati che l'overflow sia impostato su "scroll" non "auto". Detto questo , in OS X Lion, l'overflow impostato su "scroll" si comporta più come auto in quanto le barre di scorrimento mostreranno comunque solo quando vengono utilizzate. Quindi, se una qualsiasi delle soluzioni sopra non sembra funzionare, potrebbe essere il motivo.

Questo è ciò di cui avrai bisogno per risolverlo:

::-webkit-scrollbar {
  -webkit-appearance: none;
  width: 7px;
}
::-webkit-scrollbar-thumb {
  border-radius: 4px;
  background-color: rgba(0, 0, 0, .5);
  -webkit-box-shadow: 0 0 1px rgba(255, 255, 255, .5);
}

Puoi modellarlo di conseguenza se non ti piace l'impostazione predefinita.


1
Questa cosa funziona! Ma come puoi farlo solo su un div specifico?
Ricco

@Rich proprio come qualsiasi altro elemento CSS. .yourdiv :: - webkit-scrollbar {...}
Kris

@Kris Ciao, grazie per la risposta, eccone l'esempio. stackoverflow.com/a/54667091/2637261
Rich

Perché viene utilizzato-webkit-appearance: none;
Suraj Jain il

Questo è fantastico! Dovrebbe essere la risposta accettata.
Cyberpunker,

25

Le cose sono cambiate negli ultimi anni. Le risposte di cui sopra non sono più valide in tutti i casi. Apple sta spingendo le barre di scorrimento a scomparsa ovunque. Safari, Chrome e persino Firefox su MacOs (e iOs) mostrano le barre di scorrimento solo durante lo scorrimento - non conosco l'attuale Windows / IE. Tuttavia, ci sono modi non standard per lo stile delle barre di scorrimento su Webkit (IE è stato abbandonato molto tempo fa).


ma si degrada con grazia proprio su quelli nuovi?
Ben

3
Grazie per questo eccellente punto sulle barre di scorrimento che scompaiono. Per me il motivo per mantenere visibile la barra di scorrimento era evitare quel leggero ma molto evidente e fastidioso coglione mentre il contenuto cambia da avere scorrimento a non. Con le barre di scorrimento che scompaiono, non scuotono il corpo quando si mostrano e si nascondono, quindi va bene per me. Ma grazie per questo eccellente punto.
Noitidart,

4
Dal punto di vista UX, la maggior parte delle volte vogliamo che la barra di scorrimento sia visibile. Secondo la tendenza attuale, se una barra di scorrimento non è visibile, è un ulteriore passaggio dover "provare" un elenco visibile per ulteriori nell'elenco. Un ulteriore indizio visivo che l'elenco a discesa o l'elenco contiene più elementi non è necessario se le persone vedono una barra di scorrimento.
windsurf88,

24
html {
    overflow-y: scroll;
}

È questo che vuoi?

Sfortunatamente, Opera 9.64 sembra ignorare quella dichiarazione CSS quando applicata a HTMLo BODY, sebbene funzioni per altri elementi a livello di blocco come DIV.


13
html {height: 101%;}

Uso questa soluzione cross-browser (nota: utilizzo sempre la dichiarazione DOCTYPE in 1a riga, non so se funziona in quirksmode, non l'ho mai testato ).

Questo mostrerà sempre una barra di scorrimento verticale ATTIVA in ogni pagina, la barra di scorrimento verticale sarà scorrevole solo di pochi pixel.

Quando il contenuto della pagina è più corto dell'area visibile del browser (porta di visualizzazione), vedrai comunque attiva la barra di scorrimento verticale e sarà scorrevole solo di pochi pixel.

Nel caso in cui sei ossessionato dalla convalida CSS (sono ossessionato solo dalla convalida HTML) utilizzando questa soluzione il tuo codice CSS verificherebbe anche per W3C perché non stai usando attributi CSS non standard come -moz-scrollbars-vertical


1
Soluzione elegante
Artur Keyan,

12

body { height:101%; } "ritaglia" le pagine più grandi.

Invece, io uso:

body { min-height:101%; }

1
Questa domanda è stata posta 5 anni fa e ha già una risposta accettata. La tua risposta non fornisce una risposta migliore della risposta già accettata.
Dipen Shah,

18
Questa risposta fornisce effettivamente informazioni aggiuntive non fornite nelle altre risposte.
GaTechThomas,

2

Sono stato in grado di farlo funzionare aggiungendolo al tag body. È stato più bello per me perché non ho nulla sull'elemento html.

body {
    overflow-y: scroll;
}

2

Un approccio alternativo consiste nell'impostare la larghezza dell'elemento html su 100vw. In molti, se non nella maggior parte dei browser, ciò annulla l'effetto delle barre di scorrimento sulla larghezza.

html { width: 100vw; }

0

Impostare l'altezza al 101% è la mia soluzione al problema. Le pagine non "sfogliano" più quando si passa tra quelli che superano l'altezza della finestra e quelli che non lo fanno.


0
body { 
    min-height: 101vh; 
} 

funziona meglio per me


0

Lo faccio:

html {
    margin-left: calc(100vw - 100%);
    margin-right: 0;
}

Quindi non devo guardare la brutta barra di scorrimento in grigio quando non è necessaria.


La domanda chiede che sia sempre visibile.
Corv1nus,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.