Appliquez overflow:auto;juste à cela <div>. Des détails supplémentaires?
Rob W
Je l'ai fait, mais j'ai besoin d'une barre de défilement personnalisée, euh .. conception de la barre de défilement
harisdev
Couleur personnalisée? Cela n'est pris en charge que dans IE, et non dans d'autres navigateurs modernes. Cela ne peut pas être réalisé en utilisant du CSS pur.
J'ai pensé qu'il serait utile de consolider les dernières informations sur les barres de défilement, le CSS et la compatibilité du navigateur.
Prise en charge de la barre de défilement CSS
Actuellement, il n'existe aucune définition de style CSS de barre de défilement inter-navigateurs. L'article du W3C que je mentionne à la fin a la déclaration suivante et a été récemment mis à jour (10 octobre 2014):
Certains navigateurs (IE, Konqueror) prennent en charge les propriétés non standard «scrollbar-shadow-color», «scrollbar-track-color» et d'autres. Ces propriétés sont illégales: elles ne sont définies dans aucune spécification CSS ni marquées comme propriétaires (en les préfixant avec "-vendor-")
Microsoft
Comme d'autres l'ont mentionné, Microsoft prend en charge le style de barre de défilement, mais uniquement pour IE8 et supérieur.
/* pseudo elements */::-webkit-scrollbar {}::-webkit-scrollbar-button {}::-webkit-scrollbar-track {}::-webkit-scrollbar-track-piece {}::-webkit-scrollbar-thumb {}::-webkit-scrollbar-corner {}::-webkit-resizer {}/* pseudo class selectors */:horizontal:vertical:decrement:increment:start:end:double-button:single-button:no-button:corner-present:window-inactive
Firefox (Gecko)
À partir de la version 64, Firefox prend en charge le style de barre de défilement via les propriétés scrollbar-color(partiellement, brouillon W3C ) et scrollbar-width( brouillon W3C ). Quelques bonnes informations sur l'implémentation peuvent être trouvées dans cette réponse .
Style de barre de défilement inter-navigateur
Les bibliothèques et plug-ins JavaScript peuvent fournir une solution multi-navigateur. Il existe de nombreuses options.
La liste pourrait s'allonger encore. Votre meilleur pari est de rechercher, de rechercher et de tester les solutions disponibles. Je suis sûr que vous pourrez trouver quelque chose qui répondra à vos besoins.
Empêcher le style de barre de défilement illégal
Juste au cas où vous voudriez empêcher un style de barre de défilement qui n'a pas été correctement préfixé avec "-vendor", cet article sur W3C fournit quelques instructions de base . Fondamentalement, vous devrez ajouter le CSS suivant à une feuille de style utilisateur associée à votre navigateur. Ces définitions remplaceront le style de barre de défilement non valide sur toutes les pages que vous visitez.
Remarque: Cette réponse contient des informations provenant de diverses sources. Si une source a été utilisée, elle est également liée dans cette réponse.
Le Web existe depuis plus de deux décennies et il n'existe toujours pas de méthode standard pour styliser les barres de défilement. Vingt ans de comités de normalisation ne remarquant pas que les gens font défiler les choses. Il n'y a pas de taux de applaudissements lents et sarcastiques qui exprimeraient correctement ce que je ressens. Mais un délai de 20 ans entre le premier et le deuxième clap serait, je pense, approprié. Pour une certaine perspective, je n'étais pas encore né quand WWW est sorti, et je suis ingénieur en informatique maintenant. Bravo, W3C.
Parthian Shot
3
Juste pour ajouter mes deux cents: Gmail et Youtube ont une barre de défilement stylisée dans Chrome, et une native dans Explorer et Firefox. Si ces normes sont assez bonnes pour eux, c'est assez bien pour moi aussi
yonatanmn
9
@ PaulD.Waite Eh bien, peut-être, mais cela peut être appliqué à n'importe quoi. Et CSS existe en tant que langage précisément pour que les concepteurs puissent choisir de remplacer les valeurs par défaut. L'idée est qu'un mauvais concepteur d'interface utilisateur peut rendre n'importe quel élément non intuitif, mais dès que vous supposez que le concepteur de site est incompétent, quel est l'intérêt de permettre la personnalisation des pages?
Parthian Shot
6
@ PaulD.Waite De toute évidence, ce n'est pas une de ces choses. En partie parce que c'est dans la zone de l'écran que le concepteur du site devrait contrôler entièrement, de toute façon, donc cela ne pose aucun risque pour la sécurité, et en partie parce que clairement - en pratique - c'est un non-problème. De nombreux sites mettent en œuvre leurs propres hacks pour créer des éléments qui ressemblent et se comportent comme des barres de défilement, et ils fonctionnent très bien. Non seulement ils fonctionnent bien et sont plus beaux, mais les gens savent vraiment comment les utiliser, ce qui est important. Malheureusement, parce que ce sont des hacks, ils ne fonctionnent pas toujours bien avec des choses comme la fonctionnalité d'impression.
Parthian Shot
5
Cette réponse ne répond pas complètement à sa question, qui était de savoir comment appliquer des styles de barre de défilement à un div spécifique , plutôt qu'à une page entière.
Il s'agit d'une barre de défilement du plugin jQuery, donc vos barres de défilement sont contrôlables et se ressemblent sur les différents systèmes d'exploitation.
Je suis sûr que c'est probablement personnalisable, mais la démo sur leur page défile beaucoup trop lentement et la barre de défilement est beaucoup trop difficile à saisir.
Goose
4
Comme pratiquement tous les plugins jQuery - [shudders] - c'est terriblement lent comparé aux implémentations de défilement accélérées GPU natives, filetées. Complètement inadapté aux applications sérieuses et gênant pour une bonne UX. Je vous recommande d'éviter cela, sauf s'il s'agit d'un site Web de jouets.
John Weisz du
2
Je déteste quand les gens appellent quelque chose de pur javascript puis BAM! un plugin jquery.
Dinh Tran
Je ne recommanderais pas d'utiliser nicescroll, car il désactive la fonctionnalité du navigateur. Le défilement avec un clic du milieu ne fonctionne pas avec nicescroll.
Aloso
j'adore ce niceScroll, il n'ajoute pas d'élément wrapper div around ce qui signifie qu'il ne casse pas la structure html
datdinhquoc
11
Les barres de défilement personnalisées ne sont pas possibles avec CSS, vous aurez besoin d'un peu de magie JavaScript.
Certains navigateurs prennent en charge des règles CSS non spécifiques, comme ::-webkit-scrollbardans Webkit, mais ce n'est pas idéal car cela ne fonctionnera que dans Webkit. IE avait quelque chose comme ça aussi, mais je ne pense pas qu'ils le soutiennent plus.
@ T.Todua Qu'est-ce qui est obsolète dans cette réponse?
kojow7
6
Comme beaucoup de gens, je cherchais quelque chose qui était:
Style et fonctionnalité cohérents sur la plupart des navigateurs modernes
Pas une extension ridicule jQuery gonflée de 3000 lignes cr * p
... Mais hélas - rien!
Eh bien, si un travail en vaut la peine ... J'ai pu mettre quelque chose en place en 30 minutes environ. Avertissement: il y a pas mal de problèmes connus (et probablement encore quelques inconnus), mais cela me fait me demander à quoi servent les autres 2920 lignes de JS dans de nombreuses offres!
J'ai essayé beaucoup de plugins, la plupart d'entre eux ne supportent pas tous les navigateurs, je préfère que iScroll et nanoScroller fonctionnent pour tous ces navigateurs:
Merci pour la démo. Je l'ai d'abord exécuté avec Firefox 58.0.2 (64 bits, Windows 7 Pro / 64) et toutes ses barres de défilement étaient identiques. Puis a couru avec la version 65.0.3325.162 de Chrome (version officielle) (64 bits) et ils étaient tous différents. Donc (peut-être involontairement) vous avez démontré les limites de l' -webkit-approche.
CODE-REaD
4
Firefox nouvelle version (64) prend en charge le module CSS Scrollbars niveau 1
Une réponse plus concise. À mon humble avis, il a effectivement répondu à la question du PO qui était de savoir comment coiffer une seule div. Agréable.
Danimal Reks
2
Il existe un moyen d'appliquer des barres de défilement personnalisées à des éléments div personnalisés dans vos documents HTML. Voici un exemple qui aide. https://codepen.io/adeelibr/pen/dKqZNb Mais pour l'essentiel. Vous pouvez faire quelque chose comme ça.
C'est ce que Google utilise depuis longtemps dans certaines de ses applications. Voyez dans le code que, si vous appliquez les classes suivantes, elles masquent en quelque sorte la barre de défilement dans Chrome, mais cela fonctionne toujours.
Les classes sont jfk-scrollbar, jfk-scrollbar-borderlessetjfk-scrollbar-dark
Je viens de trouver utile de supprimer les flèches des barres de défilement. Depuis 2015, il a été utilisé dans Google Maps lors de la recherche de lieux dans la liste des résultats dans son interface utilisateur de conception matérielle.
J'ai essayé beaucoup de parchemins JS et CSS et j'ai trouvé que c'était très facile à utiliser et testé sur IE et Safari et FF et fonctionnait bien
COMME @thebluefox le suggère
Voici comment ça marche
Ajoutez le script ci-dessous au
<scripttype="text/javascript"src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script><scripttype="text/javascript"src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script><scripttype="text/javascript"src="jquery.ui.touch-punch.min.js"></script><scripttype="text/javascript"src="facescroll.js"></script><scripttype="text/javascript">
jQuery(function(){// on page DOM load
$('#demo1').alternateScroll();
$('#demo2').alternateScroll({'vertical-bar-class':'styled-v-bar','hide-bars':false});})</script>
Et ceci ici dans le paragraphe où vous devez faire défiler
<divid="demo1"style="width:300px;height:250px;padding:8px;resize:both;overflow:scroll">
**Your Paragraph Comes Here**
</div>
Les navigateurs Webkit (tels que Chrome, Safari et Opera) prennent en charge le pseudo-élément non standard :: - webkit-scrollbar , qui nous permet de modifier l'apparence de la barre de défilement du navigateur.
Remarque: La :: - webkit-scrollbar n'est pas prise en charge par Firefox ou IE et Edge.
<divclass="box"><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate</p><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate</p><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate</p></div><div><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate</p><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate</p><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate</p></div>
overflow:auto;
juste à cela<div>
. Des détails supplémentaires?Réponses:
J'ai pensé qu'il serait utile de consolider les dernières informations sur les barres de défilement, le CSS et la compatibilité du navigateur.
Prise en charge de la barre de défilement CSS
Actuellement, il n'existe aucune définition de style CSS de barre de défilement inter-navigateurs. L'article du W3C que je mentionne à la fin a la déclaration suivante et a été récemment mis à jour (10 octobre 2014):
Microsoft
Comme d'autres l'ont mentionné, Microsoft prend en charge le style de barre de défilement, mais uniquement pour IE8 et supérieur.
Exemple:
Chrome et Safari (WebKit)
De même, WebKit a désormais sa propre version:
Dans les barres de défilement personnalisées de WebKit , les CSS pertinents:
Firefox (Gecko)
À partir de la version 64, Firefox prend en charge le style de barre de défilement via les propriétés
scrollbar-color
(partiellement, brouillon W3C ) etscrollbar-width
( brouillon W3C ). Quelques bonnes informations sur l'implémentation peuvent être trouvées dans cette réponse .Style de barre de défilement inter-navigateur
Les bibliothèques et plug-ins JavaScript peuvent fournir une solution multi-navigateur. Il existe de nombreuses options.
La liste pourrait s'allonger encore. Votre meilleur pari est de rechercher, de rechercher et de tester les solutions disponibles. Je suis sûr que vous pourrez trouver quelque chose qui répondra à vos besoins.
Empêcher le style de barre de défilement illégal
Juste au cas où vous voudriez empêcher un style de barre de défilement qui n'a pas été correctement préfixé avec "-vendor", cet article sur W3C fournit quelques instructions de base . Fondamentalement, vous devrez ajouter le CSS suivant à une feuille de style utilisateur associée à votre navigateur. Ces définitions remplaceront le style de barre de défilement non valide sur toutes les pages que vous visitez.
Questions / sources en double ou similaires non liées ci-dessus
Remarque: Cette réponse contient des informations provenant de diverses sources. Si une source a été utilisée, elle est également liée dans cette réponse.
la source
Essayez ceci
Source: https://nicescroll.areaaperta.com/
Implémentation simple
Il s'agit d'une barre de défilement du plugin jQuery, donc vos barres de défilement sont contrôlables et se ressemblent sur les différents systèmes d'exploitation.
la source
Les barres de défilement personnalisées ne sont pas possibles avec CSS, vous aurez besoin d'un peu de magie JavaScript.
Certains navigateurs prennent en charge des règles CSS non spécifiques, comme
::-webkit-scrollbar
dans Webkit, mais ce n'est pas idéal car cela ne fonctionnera que dans Webkit. IE avait quelque chose comme ça aussi, mais je ne pense pas qu'ils le soutiennent plus.la source
Comme beaucoup de gens, je cherchais quelque chose qui était:
... Mais hélas - rien!
Eh bien, si un travail en vaut la peine ... J'ai pu mettre quelque chose en place en 30 minutes environ. Avertissement: il y a pas mal de problèmes connus (et probablement encore quelques inconnus), mais cela me fait me demander à quoi servent les autres 2920 lignes de JS dans de nombreuses offres!
la source
J'ai essayé beaucoup de plugins, la plupart d'entre eux ne supportent pas tous les navigateurs, je préfère que iScroll et nanoScroller fonctionnent pour tous ces navigateurs:
Mais iScroll ne fonctionne pas avec le toucher!
démo iScroll : http://lab.cubiq.org/iscroll/examples/simple/
demo nanoScroller : http://jamesflorentino.github.io/nanoScrollerJS/
la source
Veuillez vérifier ce lien. Exemple avec démonstration de travail
Barres de défilement CSS
la source
-webkit-
approche.Firefox nouvelle version (64) prend en charge le module CSS Scrollbars niveau 1
Source: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Scrollbars
https://codepen.io/fatihhayri/pen/pqdrbd
la source
Voici un exemple de kit Web qui fonctionne pour Chrome et Safari:
CSS:
Production:
la source
m'a donné un joli mobile / osx comme un.
la source
Il existe un moyen d'appliquer des barres de défilement personnalisées à des éléments div personnalisés dans vos documents HTML. Voici un exemple qui aide. https://codepen.io/adeelibr/pen/dKqZNb Mais pour l'essentiel. Vous pouvez faire quelque chose comme ça.
Le fichier CSS ressemble à ceci.
la source
C'est ce que Google utilise depuis longtemps dans certaines de ses applications. Voyez dans le code que, si vous appliquez les classes suivantes, elles masquent en quelque sorte la barre de défilement dans Chrome, mais cela fonctionne toujours.
Les classes sont
jfk-scrollbar
,jfk-scrollbar-borderless
etjfk-scrollbar-dark
http://jsfiddle.net/76kcuem0/32/
Je viens de trouver utile de supprimer les flèches des barres de défilement. Depuis 2015, il a été utilisé dans Google Maps lors de la recherche de lieux dans la liste des résultats dans son interface utilisateur de conception matérielle.
la source
La barre de défilement Webkit ne prend pas en charge la plupart des navigateurs.
Prise en charge sur CHROME
Une autre méthode est le plugin Jquery Scroll Bar
Il prend en charge sur tous les navigateurs et facile à appliquer
DEMO
la source
J'ai essayé beaucoup de parchemins JS et CSS et j'ai trouvé que c'était très facile à utiliser et testé sur IE et Safari et FF et fonctionnait bien
COMME @thebluefox le suggère
Voici comment ça marche
Ajoutez le script ci-dessous au
Et ceci ici dans le paragraphe où vous devez faire défiler
Pour plus de détails, visitez la page du plugin
Barre de défilement personnalisée FaceScroll
J'espère que ça aide
la source
Pour les personnes toujours à la recherche d'une bonne solution je viens de découvrir ce plugin simplebar
Dans mon cas, je cherchais des solutions reactJS, l'auteur fournit également des wrappers pour react, angular, vue et des exemples suivants
la source
Les navigateurs Webkit (tels que Chrome, Safari et Opera) prennent en charge le pseudo-élément non standard :: - webkit-scrollbar , qui nous permet de modifier l'apparence de la barre de défilement du navigateur.
Remarque: La :: - webkit-scrollbar n'est pas prise en charge par Firefox ou IE et Edge.
Référence: comment créer une barre de défilement personnalisée
la source
Utiliser uniquement le travail CSS dans Firefox +64
Plus d'informations: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Scrollbars
la source
Supposons que vous ayez le div comme
Appliquer des styles CSS en tant que
Le défilement résultant apparaîtra comme
la source
Ou utilisez quelque chose comme ça:
Et initialisez:
Et personnalisez:
la source