recherche
Maisoninterface Webtutoriel CSSComment créer un curseur de plage personnalisé à l'aide de CSS

CSS pur crée des curseurs de plage personnalisés cool: pas de javascript requis, les deux accessibilité

Cet article montrera comment créer des curseurs de portée personnalisés en utilisant uniquement des éléments CSS et HTML <input type="range"> natifs sans compter sur JavaScript tout en garantissant l'accessibilité. Les tutoriels couvrent les moyens de personnaliser les éléments d'entrée, y compris la réinitialisation et la désactivation des styles par défaut du navigateur, la définition des styles de curseurs et la création d'effets de gradient de glissement à l'aide de border-image. De plus, il vous expliquera comment ajouter des animations subtiles pour améliorer l'interaction des utilisateurs, telles que la conversion du curseur d'un cercle de bordure uniquement en cercle complet lorsqu'il a cliqué et assombrissant la couleur lorsqu'il est en plané. Cette technologie conserve les fonctionnalités natives et prend en charge la navigation par clavier, offrant une solution polyvalente et facile à accès pour les curseurs de gamme personnalisés.

How to Create a Custom Range Slider Using CSS

Points clés:

  • Créez un curseur de portée personnalisé à l'aide de CSS purs et d'éléments HTML <input type="range"> natifs.
  • Le didacticiel
  • contient des étapes pour personnaliser les éléments d'entrée: réinitialiser et désactiver les styles par défaut du navigateur, définir les styles de curseur et créer des effets de gradient de glissement à l'aide de border-image.
  • Ajoutez des animations subtiles pour améliorer l'expérience utilisateur, telles que la modification de la forme du curseur lors du clic et la modification de la couleur lorsqu'il est en survol.
  • Gardez les fonctionnalités natives et supportez la navigation au clavier pour assurer l'accessibilité.

Le style de curseur de plage par défaut n'est pas beau. La figure suivante montre l'effet d'affichage du curseur de plage par défaut dans les navigateurs Chrome, Firefox et Safari:

How to Create a Custom Range Slider Using CSS

Cependant, les éléments <input type="range"> sont difficiles à coiffer. La plupart des solutions en ligne reposent sur JavaScript et le code verbeux. Pire, certaines technologies peuvent également détruire l'accessibilité des éléments. Voyons donc comment mieux utiliser des CS purs pour réaliser sans affecter l'accessibilité. La démonstration de codep suivante montre ce que nous allons construire: lien de codepen

Structure de l'élément d'entrée de plage

Analysons d'abord la structure de l'élément d'entrée de plage. Il s'agit d'un élément natif et chaque navigateur a sa propre implémentation. Il existe deux implémentations principales: une pour les navigateurs WebKit et Blink (tels que Chrome, Edge, Safari et Opera):

<input type="range" min="0" max="100" step="1" value="20">

How to Create a Custom Range Slider Using CSS

Un autre pour Firefox:

<input type="range" min="0" max="100" step="1" value="20">

How to Create a Custom Range Slider Using CSS

IE a également une troisième implémentation, mais heureusement, ce navigateur a presque disparu maintenant! Cette incohérence entre les navigateurs rend les tâches difficiles car nous devons fournir des styles différents pour chaque implémentation. Je n'entrerai pas dans cela en profondeur car ce post ne sera jamais terminé, mais je recommande fortement de lire ce post par Ana Tudor pour une exploration plus approfondie (les liens de publication doivent être insérés ici). Il vous suffit de vous rappeler que peu importe la mise en œuvre, le "curseur" (pouce) est toujours un composant commun.

How to Create a Custom Range Slider Using CSS

Je stylerai seulement cet élément, ce qui rendra mon curseur de portée personnalisé facile à personnaliser. Sautons directement dans le code et voyons ce qui est incroyable.

Élément d'entrée personnalisé

La première étape consiste à utiliser appearance: none et à certaines autres propriétés communes pour réinitialiser et désactiver tous les styles par défaut du navigateur:

<input type="range" min="0" max="100" step="1" value="20">

Dans les cas plus complexes, si d'autres styles par défaut sont appliqués à nos éléments, nous devrons peut-être ajouter plus de code. Assurez-vous simplement que nous avons un élément "nu" sans aucun style visuel. Définissons également certaines variables CSS afin que nous puissions facilement créer différentes variantes pour le curseur de plage:

<input type="range" min="0" max="100" step="1" value="20">

Dans cette étape, seul le curseur et son style par défaut sont visibles.

Définissez le style de l'élément de curseur

Style, stylissons l'élément de curseur. Nous commencerons par les paramètres de base:

input {
  appearance: none;
  background: none;
  cursor: pointer;
}

Utiliser border-image Ajoutez des effets magiques

Maintenant, nous utiliserons une astuce CSS magique pour compléter notre curseur. Il s'agit de l'utilisation de border-image:

input {
  --c: orange; /* 活动颜色 */
  --g: 8px; /* 间隙 */
  --l: 5px; /* 线粗细 */
  --s: 30px; /* 滑块大小 */

  width: 400px; /* 输入宽度 */
  height: var(--s);
  appearance: none;
  background: none;
  cursor: pointer;
}

L'hallucination est parfaite en ajoutant overflow: hidden à l'élément d'entrée et en utilisant des valeurs plus grandes.

Ajoutez des animations

pouvons-nous ajouter des animations subtiles lors de l'interaction avec le curseur? Il ne nécessite pas beaucoup de code et améliorera l'UX du curseur. Tout d'abord, nous convertissons le curseur d'un cercle de bordure uniquement en cercle complet lorsqu'il a cliqué. Pour ce faire, nous ajoutons la valeur box-shadow de spread.

Conclusion

Nous l'avons fait et n'avons pas à faire face à des implémentations liées au navigateur complexes! Nous avons identifié le sélecteur de l'élément de curseur et utilisé certaines astuces CSS pour styliser toute la gamme des curseurs. N'oubliez pas, nous n'utilisons que l'élément <input type="range">, donc nous n'avons pas à nous soucier des problèmes d'accessibilité car nous gardons les fonctionnalités natives. Le curseur prend en charge la navigation au clavier sans aucun problème. Voici plus d'exemples de curseurs créés avec la même technique: lien de codepen

Codepen Link

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Se sentir comme je n'ai pas de libération: un voyage vers les déploiements sainsSe sentir comme je n'ai pas de libération: un voyage vers les déploiements sainsApr 23, 2025 am 09:19 AM

Le déploiement comme un idiot se résume à un décalage entre les outils que vous utilisez pour déployer et la récompense en complexité réduite par rapport à la complexité ajoutée.

Donc, vous voulez abandonner CSS pré- et post-processeurs ...Donc, vous voulez abandonner CSS pré- et post-processeurs ...Apr 23, 2025 am 09:18 AM

Il y avait une fois où le CSS natif manquait de nombreuses caractéristiques essentielles, laissant les développeurs pour trouver toutes sortes de façons de rendre CSS plus facile à écrire au fil des ans.

Un nouveau rapport de préparation 'Web'Un nouveau rapport de préparation 'Web'Apr 23, 2025 am 09:14 AM

La préparation HTML 5 était un site qui montrait à travers un arc-en-ciel de couleurs que le navigateur prend en charge pour plusieurs fonctionnalités Web. Et une nouvelle version?

Crafting Strong DX avec des composants Astro et dactylographiquesCrafting Strong DX avec des composants Astro et dactylographiquesApr 23, 2025 am 09:10 AM

Une chose que nous pouvons faire pour aider les équipes à code cohérente est de fournir une vérification de type afin que toutes les options configurables pour un composant spécifique soient disponibles lors du codage. Bryan montre comment il fait cela avec TypeScript lorsqu'il travaille avec Astro Comp

Simulation du mouvement de la sourisSimulation du mouvement de la sourisApr 22, 2025 am 11:45 AM

Si vous avez jamais eu à afficher une animation interactive lors d'un discours en direct ou d'une classe, vous savez peut-être que ce n'est pas toujours facile d'interagir avec vos diapositives

Alimentation de recherche avec Astro Actions et Fuse.jsAlimentation de recherche avec Astro Actions et Fuse.jsApr 22, 2025 am 11:41 AM

Avec Astro, nous pouvons générer la plupart de notre site pendant notre version, mais avoir un petit peu de code côté serveur qui peut gérer les fonctionnalités de recherche en utilisant quelque chose comme Fuse.js. Dans cette démo, nous utiliserons du fusible pour rechercher un ensemble de «signets» personnels

Undefined: la troisième valeur booléenneUndefined: la troisième valeur booléenneApr 22, 2025 am 11:38 AM

Je voulais implémenter un message de notification dans l'un de mes projets, similaire à ce que vous verriez dans Google Docs pendant que un document enregistre. En d'autres termes, un

Pour défendre la déclaration ternairePour défendre la déclaration ternaireApr 22, 2025 am 11:25 AM

Il y a quelques mois, j'étais sur Hacker News (comme on le fait) et j'ai rencontré un article (maintenant supprimé) sur le fait de ne pas utiliser les déclarations. Si vous êtes nouveau dans cette idée (comme moi

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

MinGW - GNU minimaliste pour Windows

MinGW - GNU minimaliste pour Windows

Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

VSCode Windows 64 bits Télécharger

VSCode Windows 64 bits Télécharger

Un éditeur IDE gratuit et puissant lancé par Microsoft

Navigateur d'examen sécurisé

Navigateur d'examen sécurisé

Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

SublimeText3 version anglaise

SublimeText3 version anglaise

Recommandé : version Win, prend en charge les invites de code !