SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
26.01.2025

Personalizando a Barra de Rolagem de um DIV em CSS Sem Afetar a Página

Resposta Rápida

Para personalizar a barra de rolagem em um div, utilize os pseudo-elementos ::-webkit-scrollbar e suas propriedades associadas em CSS. Esse método funciona bem em navegadores Webkit. Aqui está um exemplo simples de código:

/* Define o tamanho e a cor de fundo da barra de rolagem */
div::-webkit-scrollbar {
  width: 10px;
}

/* Estilo para a "thumb" da barra de rolagem */
div::-webkit-scrollbar-thumb {
  background: #888;
  border-radius: 5px;
}

/* Estilos para a "thumb" ao passar o mouse */
div::-webkit-scrollbar-thumb:hover {
  background: #555; /* Um tom mais escuro parece mais estiloso */
}

Certifique-se de que o conteúdo que está causando a barra de rolagem esteja dentro de um div:

<div style="height: 200px; overflow-y: auto;">
  <!-- Pode haver uma grande quantidade de conteúdo aqui -->
</div>

O processo de personalização é simples e rápido, mas para um desempenho consistente em diversos navegadores, pode ser necessário estilizações CSS adicionais.

Compatibilidade com Navegadores e Métodos

::-webkit-scrollbar funciona perfeitamente no Chrome, Safari e versões mais recentes do Edge. Mas quanto ao Firefox ou IE?

Firefox

O Firefox suporta as propriedades scrollbar-color e scrollbar-width, que, apesar de pouco conhecidas, estilizam eficazmente a barra de rolagem.

/* Estilos para a barra de rolagem no Firefox */
div {
  scrollbar-color: darkgrey lightgrey;
  scrollbar-width: thin;
}

Internet Explorer

A Microsoft introduziu suas propriedades de barra de rolagem no IE8, mas sua eficácia diminuiu na era dos padrões web modernos.

Solução em JavaScript

Para garantir um design de barra de rolagem uniforme em todos os navegadores, podem ser utilizadas bibliotecas JavaScript, como "niceScroll."

$(document).ready(function() {  
  $("div").niceScroll({
    cursorcolor: "#888",
    cursorwidth: "10px",
    cursorborder: "1px solid #555",
    cursorborderradius: "5px"
  });
}); /* Decore as barras de rolagem personalizadas com estilo */

Este script deve ser colocado dentro da tag <script> após o carregamento do conteúdo da página. "niceScroll" personaliza a barra de rolagem especificamente em seu div, sem afetar a rolagem de toda a página.

Visualização

Pense em um biscoito amanteigado comum versus um enfeite de gengibre festivo. Seu div com uma barra de rolagem padrão é como o biscoito amanteigado: simples e funcional, mas sem graça.

Barra de Rolagem Padrão:
|---------------------|
| 🖼 🖌 🎨              | <-- Funcional, mas sem charme.
|---------------------|

Mas quando você começa a aplicar CSS, ele se transforma no boneco de gengibre – um elemento atraente e festivo.

Barra de Rolagem Personalizada:
|---------------------|
| 🖼 🖌 🎨              | <-- Um deleite visual que lembra uma celebração!
|[🎨][🌈][🖌]         |
|---------------------|

CSS ajuda a transformar a barra de rolagem em um elemento de interface notável e prático.

Designs Flexíveis com CSS

Usar linear-gradient, box-shadow e border-image pode adicionar estilo à sua barra de rolagem:

/* Gradiente para a trilha da barra de rolagem */
div::-webkit-scrollbar-track {
  background: linear-gradient(90deg, rgba(0,0,0,.2), rgba(0,0,0,0));
}

/* Estilizando a thumb com sombras e transições suaves */
div::-webkit-scrollbar-thumb {
  background-color: #999;
  box-shadow: inset 0 0 10px #000000;
  transition: background-color 0.3s ease;
}

Efeitos de passar o mouse aumentam a interatividade da interface.

Esteja Preparado para Nuances

Se a largura da barra de rolagem for muito grande, pode distorcer o layout da página. Testes rigorosos em diferentes dispositivos ajudarão a eliminar esse problema.

Monitore o Desempenho

Embora barras de rolagem personalizadas sejam atraentes, elas não devem desacelerar a página. O uso moderado de bibliotecas JavaScript ajudará a manter o desempenho do seu site.

Recursos Úteis

  1. Estilizando Barras de Rolagem | WebKit — Um guia abrangente sobre como estilizar barras de rolagem para WebKit.
  2. Personalização de Barra de Rolagem em CSS | MDN — Um guia conciso da MDN sobre personalização de barras de rolagem usando CSS.
  3. Barras de Rolagem em CSS | CSS-Tricks — Tudo sobre estilização de barras de rolagem.
  4. Scrollbar Personalizada | W3Schools — Um guia passo a passo da W3Schools para a criação de barras de rolagem personalizadas.
  5. Estilizando Barra de Rolagem em CSS | Can I use — Informações sobre o suporte à estilização de barras de rolagem CSS em vários navegadores.
  6. Barras de Rolagem Criativas | CodePen — Exemplos inspiradores de designs de barras de rolagem.
  7. Ocultando a Barra de Rolagem Enquanto Mantém a Funcionalidade de Rolagem | Stack Overflow — Uma discussão sobre barras de rolagem personalizadas em um div nos fóruns Stack Overflow.

Video

Did you like this article? Rate it from 1 to 5:

Thank you for voting!