Je suis nouveau dans les pseudo-éléments qui sont préfixés par un double colon. Je suis tombé sur un article de blog sur le style des barres de défilement en utilisant uniquement des CSS Webkit. Le pseudo-élément CSS peut-il être appliqué à des éléments individuels?
/* This works by applying style to all scroll bars in window */
::-webkit-scrollbar {
width: 12px;
}
/* This does not apply the scrollbar to anything */
div ::-webkit-scrollbar {
width: 12px;
}
Dans ce violon, je voudrais personnaliser la barre de défilement de la div, mais la barre de défilement de la fenêtre principale reste par défaut.
Votre idée était correcte. Cependant, la notation div ::-webkit-scrollbar
avec un espace après div
est en fait identique à div *::-webkit-scrollbar
; ce sélecteur signifie "barre de défilement de tout élément à l'intérieur de <div>
". Utilisation div::-webkit-scrollbar
.
Voir la démo sur http://jsfiddle.net/4xMUB/2/
Je veux utiliser un sélecteur de classe pour utiliser une barre de défilement personnalisée.
En quelque sorte .foo::-webkit
ne fonctionne pas, mais j'ai compris que div.foo::-webkit
ça marche! Ces ## $$ * ## pseudo-choses ....
Vous pouvez également appliquer ces règles par id de l'élément. Disons que la barre de défilement d'un div doit être stylée avec un identifiant "myDivId". Ensuite, vous pouvez faire ce qui suit. De cette façon, vous pouvez utiliser différents styles pour les barres de défilement de différents éléments.
#myDivId::-webkit-scrollbar {
width: 12px;
}
#myDivId::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
border-radius: 10px;
}
#myDivId::-webkit-scrollbar-thumb {
border-radius: 10px;
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.5);
}