CSS - Estouro: rolagem; - Sempre mostrar barra de rolagem vertical?

224

Então, atualmente eu tenho:

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

No entanto, não acredito que seja óbvio para alguns usuários que haja mais conteúdo lá. Eles poderiam rolar a página sem saber que minha div realmente contém muito mais conteúdo. Eu uso a altura 510px para cortar algum texto e, em algumas páginas, parece que há mais conteúdo, mas isso não funciona para todas elas.

Estou usando um Mac e, no Chrome e Safari, a barra de rolagem vertical será exibida apenas quando o mouse estiver sobre a Div e você rolar ativamente. Existe uma maneira de sempre exibi-lo?

Jambo
fonte
4
Você pode recriar esse comportamento exato no jsfiddle ? O css que você forneceu deve forçar uma barra de rolagem a estar presente o tempo todo.
Sg3s
1
Sim, parece que você tem outras peculiaridades de CSS causando isso; isso deve exibir a barra de rolagem sempre. Certifique-se de que as divs que envolvem esta estejam com o estilo correto.
Shawn Steward
Estou executando o Lion! Talvez seja isso? Vou abrir uma máquina virtual e ver o que é como no lado de janelas de coisas ...
Jambo
1
Porra, meu mal! É um recurso do Lion. Eu realmente deveria ler o que estou comprando antes de comprá-lo ... Obrigado, pessoal!
Jambo

Respostas:

386

Apenas me deparei com esse problema. O OSx Lion oculta as barras de rolagem enquanto não está em uso, para parecer mais "liso", mas ao mesmo tempo surge o problema que você abordou: às vezes as pessoas não conseguem ver se uma div tem um recurso de rolagem ou não.

A correção: no seu css, inclua -

::-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);
}

personalize a aparência conforme necessário. Fonte

NoviceCoding
fonte
6
Isso também deve funcionar no iPad com o Safari? Estou em um iPad 2 executando o iOS 6.1.3 e ele não funciona.
precisa saber é
6
Existe uma maneira de fazer isso se aplicar apenas a uma classe específica?
Futbolpal
2
Funcionou para mim somente depois de definir 'overflow: auto' no contêiner (no meu caso, um <ul>). Obrigado!
Rob Campion
8
@futbolpal sim, isso parece funcionar em uma classe; Tente .classname :: - webkit-scrollbar
Chase
4
como posso fazer isso funcionar horizontalmente? barras mostra-se de rolagem vertical, mas não de rolagem horizontal
BritishSam
14

Observe que no iPad Safari, a solução da NoviceCoding não funcionará se você tiver - webkit-overflow-scrolling: touch;em algum lugar do seu CSS. A solução é remover todas as ocorrências -webkit-overflow-scrolling: touch;ou colocar -webkit-overflow-scrolling: auto;a solução da NoviceCoding.

Razan Paul
fonte
3
É possível ter ambos em nosso CSS - webkit-overflow-scrolling: touch e as barras de rolagem?
Julsy
1

Isso funcionará com o iPad no Safari no iOS 7.1.x dos meus testes, embora não tenha certeza do iOS 6. No entanto, não funcionará no Firefox. Existe um plugin jQuery que visa ser compatível com vários navegadores, chamado jScrollPane .

Além disso, há um post duplicado aqui no Stack Overflow, que tem outros detalhes.

JStarcher
fonte
5
Esteja ciente de que esta pergunta foi feita há 2 anos, antes mesmo do iOS6 existir.
OGHaza
O webkit é apenas para o Safari Chrome. Você precisará direcionar o mecanismo específico do Firefox
TigerBear 27/01
-4

Isso fará com que as barras de rolagem sejam sempre exibidas quando houver conteúdo nas janelas que deva ser rolado para acessar; isso se aplica a todas as janelas e todos os aplicativos no Mac:

Inicie as Preferências do sistema no menu Apple Clique no painel de configurações “Geral”. Procure 'Mostrar barras de rolagem' e selecione a caixa de opções ao lado de 'Sempre'. Feche as Preferências do sistema quando terminar.

Michelle
fonte
18
Isso responde à pergunta, mais ou menos, mas é uma correção do lado do cliente, em vez de corrigi-la do lado do servidor. Portanto, é algo que o usuário da página da web precisa fazer, o stackoverflow é um site de programação, para que as pessoas geralmente venham aqui para encontrar a solução de código, em vez de uma maneira de o usuário alterar as configurações do navegador.
Eric Leschinski 5/03