2012-09-09 21 views
19

¿Cómo puedo diseñar barras de desplazamiento webkit con CSS3?estilo de la barra de desplazamiento CSS3 en un div

me refiero a estas propiedades

::-webkit-scrollbar { 
    width: 12px; 
} 

::-webkit-scrollbar-track { 
    -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3); 
    border-radius: 10px; 
} 

::-webkit-scrollbar-thumb { 
    border-radius: 10px; 
    -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.5); 
} 

Aquí está mi etiqueta div

<div class="scroll"></div> 

Aquí está mi actual CSS

.scroll { 
    width: 200px; height: 400px; 
    overflow: hidden; 
} 
+1

'overflow: hidden' oculta cualquier barra de desplazamiento, por lo que no hay nada que decorar con CSS3. Tienes que hacer barras de desplazamiento visibles con 'overflow: scroll' o' overflow: auto' – keaukraine

Respuesta

53

Configuración overflow: hidden oculta la barra de desplazamiento. Establezca overflow: scroll para asegurarse de que la barra de desplazamiento aparezca todo el tiempo.

Para utilizar la propiedad ::webkit-scrollbar, simplemente seleccione .scroll antes de llamar.

.scroll { 
    width: 200px; 
    height: 400px; 
    background: red; 
    overflow: scroll; 
} 
.scroll::-webkit-scrollbar { 
    width: 12px; 
} 

.scroll::-webkit-scrollbar-track { 
    -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3); 
    border-radius: 10px; 
} 

.scroll::-webkit-scrollbar-thumb { 
    border-radius: 10px; 
    -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.5); 
} 
​ 

ver este vivo example

+0

Gracias esto funciona. ¿Hay alguna manera de que podamos hacer lo mismo con el navegador mozilla? – 2619

+0

No sin jQuery/JavaScript. Ver esta pregunta http://stackoverflow.com/questions/6165472/custom-css-scrollbar-for-firefox – jacktheripper

1
.scroll { 
    width: 200px; height: 400px; 
    overflow: auto; 
} 
0

está configurando overflow: hidden. Esto ocultará todo lo que sea demasiado grande para el <div>, lo que significa que no se mostrarán las barras de desplazamiento. Dar a su <div> una anchura y/o altura explícita, y cambiar a overflowauto:

.scroll { 
    width: 200px; 
    height: 400px; 
    overflow: scroll; 
} 

Si sólo desea mostrar una barra de desplazamiento si el contenido es más largo que el <div>, cambie overflow a overflow: auto. También puede mostrar una barra de desplazamiento usando overflow-y o overflow-x.

0

El problema con las barras de desplazamiento css3 es que la interacción solo se puede realizar en el contenido. no podemos interactuar con la barra de desplazamiento en dispositivos táctiles.

Cuestiones relacionadas