CSS - Overflow: Scroll; - Mostra sempre la barra di scorrimento verticale?


224

Quindi attualmente ho:

#div {
  position: relative;
  height: 510px;
  overflow-y: scroll;
}

Tuttavia, non credo che per alcuni utenti sarà ovvio che ci sono più contenuti lì. Potrebbero scorrere verso il basso la pagina senza sapere che il mio div in realtà contiene molti più contenuti. Uso l'altezza 510px in modo che tagli un po 'di testo, quindi su alcune pagine sembra che ci sia più contenuto, ma questo non funziona per tutti.

Sto usando un Mac, e in Chrome e Safari la barra di scorrimento verticale mostrerà solo quando il mouse è sopra il Div e si scorre attivamente. C'è un modo per averlo sempre visualizzato?


4
Uhm, puoi ricreare questo comportamento esatto su jsfiddle ? Il CSS che hai fornito dovrebbe forzare una barra di scorrimento a essere sempre presente.
sg3s,

1
Sì, sembra che ci siano altre stranezze CSS in corso per causare questo, questo dovrebbe visualizzare sempre la barra di scorrimento. Assicurati che la confezione del div abbia uno stile appropriato.
Shawn Steward,

Sto correndo Lion! Forse è tutto? Aprirò una macchina virtuale e vedrò com'è sul lato Windows delle cose ...
Jambo,

1
Accidenti, mio ​​cattivo! È una caratteristica di Lion. Dovrei davvero leggere quello che sto comprando prima di acquistarlo ... Grazie ragazzi!
Jambo,

Risposte:


386

Mi sono appena imbattuto in questo problema. OSx Lion nasconde le barre di scorrimento quando non è in uso per farlo sembrare più "liscio", ma allo stesso tempo si presenta il problema che hai affrontato: le persone a volte non riescono a vedere se un div ha una funzione di scorrimento o meno.

La correzione: nel tuo css includi -

::-webkit-scrollbar {
  -webkit-appearance: none;
  width: 7px;
}

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

personalizzare l'apparenza secondo necessità. fonte


6
Questo dovrebbe funzionare anche su iPad con Safari? Sono su un iPad 2 con iOS 6.1.3 e non funziona.
crmpicco,

6
C'è un modo per fare in modo che questo si applichi solo a una classe specifica?
futbolpal,

2
Ha funzionato per me solo dopo aver impostato 'overflow: auto' sul contenitore (nel mio caso, un <ul>). Grazie!
Rob Campion,

8
@futbolpal sì, sembra funzionare in una classe; provare .classname :: - webkit-scrollbar
Chase

4
come posso farlo funzionare in orizzontale? la barra viene visualizzata per lo scorrimento verticale ma non per quello orizzontale
BritishSam

14

Nota su iPad Safari, la soluzione di NoviceCoding non funzionerà se ce l'hai - webkit-overflow-scrolling: touch;da qualche parte nel tuo CSS. La soluzione sta rimuovendo tutte le occorrenze -webkit-overflow-scrolling: touch;o inserendo -webkit-overflow-scrolling: auto;la soluzione di NoviceCoding.


3
È possibile avere entrambi nel nostro CSS - webkit-overflow-scrolling: touch e le barre di scorrimento?
Julsy,

1

Questo funzionerà con iPad su Safari su iOS 7.1.x dai miei test, tuttavia non sono sicuro di iOS 6. Tuttavia, non funzionerà su Firefox. Esiste un plug-in jQuery che mira a essere compatibile con il browser incrociato chiamato jScrollPane .

Inoltre, c'è un post duplicato qui su Stack Overflow che ha alcuni altri dettagli.


5
Tieni presente che questa domanda è stata posta 2 anni fa, prima ancora che iOS6 esistesse.
OGHaza,

webkit è solo Safari Chrome. Dovrai scegliere come target il motore specifico di Firefox
TigerBear,

-4

In questo modo le barre di scorrimento verranno sempre visualizzate quando è presente contenuto all'interno delle finestre a cui è necessario scorrere per accedere, si applica a tutte le finestre e tutte le app sul Mac:

Avvia Preferenze di Sistema dal menu  Apple Fai clic sul pannello delle impostazioni "Generali" Cerca "Mostra barre di scorrimento" e seleziona il riquadro radio accanto a "Sempre" Al termine delle Preferenze di Sistema


18
Questo risponde alla domanda, in un certo senso, ma è una correzione lato client piuttosto che una correzione lato server. Quindi è qualcosa che l'utente della pagina web deve fare, stackoverflow è un sito di programmazione, quindi le persone di solito vengono qui per trovare la soluzione del codice piuttosto che un modo per l'utente di modificare le impostazioni del proprio browser.
Eric Leschinski il
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.