EDIT : aujourd'hui, tous les principaux navigateurs prennent en charge les deux
Par conséquent, vous devez utiliser l'un des deux, comme expliqué dans d'autres réponses et cela ne devrait plus être la réponse acceptée.
El <input type="range">
est assez récent et vous essayez déjà de le personnaliser avec des CSS :)
Je n'essaierais pas ça pour deux raisons :
-
là il pourrait y avoir d'énormes problèmes de compatibilité maintenant et pour les quelques (ou nombreuses) prochaines années. . Pensez que de nos jours, un contrôle de formulaire comme <select>
(disponible depuis le début du web) est encore difficile à personnaliser avec des feuilles de style en cas de changement de navigateur. Par exemple, si vous définissez un padding
pour les boîtes de sélection, de nombreux navigateurs (IE7, OPERA9, CHROME5, SAFARI4) ignorent totalement le padding. Cela ne fonctionne que sur IE8 et sur FF 3.6. (tous les tests ont été effectués avec HTML5 DOCTYPE donc en mode standard).
-
El <input type="range">
a été créé pour afficher un curseur PAS une barre de progression Si vous essayez de tricher avec les CSS pour transformer un curseur en barre de progression, cela semble bizarre. Comme essayer d'utiliser le CSS pour transformer un <textarea>
dans un tableau, mais pourquoi ne pas simplement utiliser une <table>
pour rendre les tableaux !
Pour afficher une barre de progression en HTML5, vous devez suivre la suggestion donnée par marcgg dans sa réponse. Comme aucun navigateur ne le restitue actuellement, vous pouvez utiliser un simple div avec un p à l'intérieur, comme ceci :
<div id="progress" style="position:relative; width:100px; height:20px; border:1px solid #cccccc;">
<p style="position:absolute; left:0; top:0; background-color:#0000ff; height:100%; width:30%; font-size:0px;"> </p>
</div>
Ensuite, il suffit de mettre à jour le style.width
de l'intérieur P
élément en pourcentage comme :
width: 75%
FYI : si vous voulez faire cela en simple JS voici le code :
document.getElementById('progress').(getElementsByTagName('p')[0]).style.width = '75%';
0 votes
Avec une combinaison de javascript ? Par le biais de CSS, vous pourriez faire en sorte que l'entrée ne soit pas affichée et que le rendu de wathever soit adapté :before et :after de l'élément. Ensuite, grâce à javascript, vous pouvez gérer la façon dont tout cela interagit avec les autres.
0 votes
Voici un excellent article sur ce sujet : hongkiat.com/blog/html5-range-slider-style .
2 votes
Il serait utile que vous refusiez la réponse actuellement acceptée (et que vous en acceptiez peut-être une autre qui vous plaise). Avoir une réponse disant "n'essayez même pas, la technologie est trop récente" de la part de il y a 5 ans toujours épinglé en haut de la liste des réponses n'aide personne.
0 votes
Ce sujet est un peu ancien mais il apparaît toujours dans les moteurs de recherche. Voici donc un bon exemple de mise en œuvre et d'utilisation du navigateur X. brennaobrien.com/blog/2014/05/ . Il n'y a pas de problème avec la réponse acceptée, mais elle est un peu dépassée.
0 votes
Existe-t-il un moyen de le faire par programme en javascript ? Je suis intéressé par la modification dynamique des attributs de l'élément thumb.