Table des matières
1. Utilisez une approche CSS uniquement avec des pseudo-éléments et une rotation des frontières
2. Créez une barre de progression de style anneau à l'aide de la bordure et du chemin de clip
3. Ajouter une animation et des transitions en douceur
4. Personnaliser l'apparence
Maison interface Web tutoriel CSS Comment créer une barre de progrès circulaire avec CSS

Comment créer une barre de progrès circulaire avec CSS

Aug 23, 2025 am 07:38 AM

Créer une barre de progrès en anneau à l'aide de CSS peut être réalisée par le biais de la conique-gradient ou du chemin de clip et de la rotation. Le premier convient aux progrès statiques ou à la mise à jour JavaScript, tandis que le second est plus adapté à l'animation en douceur; Construisez une apparence circulaire à travers les variables CSS et les pseudo-éléments, contrôlez la progression de la transformation: rotation (), et ajoutez la transition pour réaliser des effets d'animation, prends en charge les couleurs personnalisées, l'épaisseur et les étiquettes centrales, et sélectionnez des méthodes appropriées basées sur la compatibilité du navigateur et les exigences d'animation.

Comment créer une barre de progrès circulaire avec CSS

La création d'une barre de progrès circulaire avec CSS est un moyen propre de représenter visuellement des pourcentages de progrès ou d'achèvement sur une page Web. Bien que Pure CSS ait des limites pour les mises à jour dynamiques, vous pouvez construire une barre de progrès circulaire fonctionnelle et animée en utilisant une combinaison de CSS et un HTML minimal. Voici comment.

1. Utilisez une approche CSS uniquement avec des pseudo-éléments et une rotation des frontières

Une méthode courante utilise un conteneur avec un pseudo-élément qui tourne pour simuler le remplissage de progrès. Cela fonctionne bien pour les barres statiques ou semi-dynamiques (mise à jour via des classes JavaScript).

Structure HTML:

 <div class = "Circular-Progress" style = "- Progress: 75;"> </div>

CSS:

 .Circular-Progress {
  Largeur: 100px;
  hauteur: 100px;
  Border-Radius: 50%;
  Contexte: gradient conique (
    # 4CAF50 var (- progrès),
    # e0e0e0 var (- progrès)
  ));
  Position: relative;
}

.Circular-Progress :: avant {
  contenu: &#39;&#39;;
  Position: absolue;
  en haut: 50%;
  Gauche: 50%;
  Transformer: traduire (-50%, -50%);
  Largeur: 80%;
  hauteur: 80%;
  Contexte: blanc;
  Border-Radius: 50%;
}

Cela crée un cercle rempli jusqu'au pourcentage défini par la variable CSS --progress (par exemple, 75% ). Le conic-gradient dessine l'arc coloré, et le ::before le pseudo-élément ne masque le centre pour le faire ressembler à une bague.

Remarque: conic-gradient est bien soutenu dans les navigateurs modernes mais peut avoir besoin de secours pour les plus âgés.

2. Créez une barre de progression de style anneau à l'aide de la bordure et du chemin de clip

Si vous voulez une trait circulaire mince (comme un fileur de chargement), utilisez un élément bordé à l'intérieur d'un conteneur coupé.

HTML:

 <div class = "progress-ring">
  <div class = "Progress-Fill"> </div>
</div>

CSS:

 .progress-ring {
  Largeur: 100px;
  hauteur: 100px;
  Border-Radius: 50%;
  Contexte: # E0E0E0;
  Position: relative;
}

.progress-fill {
  Position: absolue;
  Largeur: 100%;
  hauteur: 100%;
  Border-Radius: 50%;
  Clip: RECT (0px, 100px, 100px, 50px);
  Contexte: # 4CAF50;
  transformée: rotation (135deg); / * Commencer par le haut * /
}

.progress-fill :: avant {
  contenu: &#39;&#39;;
  Position: absolue;
  en haut: 0;
  à gauche: 0;
  Largeur: 100%;
  hauteur: 100%;
  Border-Radius: 50%;
  Clip: RECT (0px, 50px, 100px, 0px);
  Contexte: # 4CAF50;
  transformée: rotation (90deg); / * Ajuster en fonction des progrès * /
  Transform-Origin: 50% 50%;
}

Pour animer cela avec un pourcentage spécifique (par exemple, 60%), vous calculeriez l'angle de rotation: 360 * (progress / 100) . Vous pouvez mettre à jour cela via JavaScript en modifiant la valeur transform: rotate() sur .progress-fill::before .

3. Ajouter une animation et des transitions en douceur

Pour faire en sorte que la barre anime en douceur lorsque les progrès changent, utilisez les transitions CSS. Cependant, conic-gradient et clip ne sont pas directement animéables, vous pouvez donc animer la transform: rotate() sur l'élément de remplissage.

Exemple avec animation:

 .progress-fill :: avant {
  transition: transformer 0,5 s facilité;
}

Puis mettez à jour la rotation via JavaScript:

 const fill = document.QuerySelector (&#39;. Progress-Fill :: avant&#39;);
// pas directement possible - utilisez plutôt un emballage ou une bascule de classe

Une meilleure approche: enveloppez le remplissage dans un récipient et tournez-le:

 <div class = "progress-ring">
  <div class = "Progress-mask">
    <div class = "Progress-Fill"> </div>
  </div>
</div>
 .Progress-mask {
  Position: absolue;
  Largeur: 100%;
  hauteur: 100%;
  Clip: RECT (0, 100px, 100px, 50px);
  Transformer: Rotation (0deg); / * Contrôlé par JS * /
}

.progress-fill {
  Largeur: 100%;
  hauteur: 100%;
  Border-Radius: 50%;
  Contexte: # 4CAF50;
}

Utilisez maintenant JavaScript pour définir la rotation:

 fonction setProgress (pour cent) {
  const RotateDeg = pour cent * 3,6; // 360/100
  document.QuerySelector (&#39;. Progress-mask&#39;). style.transform = 
    `rotation ($ {rotatedeg} deg)`;
}

4. Personnaliser l'apparence

  • Changez l'épaisseur de l'anneau en ajustant la découpe intérieure ou en utilisant une bordure à la place.
  • Ajoutez une étiquette au centre à l'aide d'un élément enfant.
  • Soutenir le thème avec les variables CSS:
     .Circular-Progress {
      - Progress: 50%;
      --FG-Color: # 4CAF50;
      --BG-Color: # E0E0E0;
      Contexte: gradient conique (
        var (- fg-color) var (- progress),
        var (- bg-coulor) var (- progress)
      ));
    }

    Fondamentalement, c'est un mélange de gradients intelligents, d'écrasement et de rotation. La méthode de gradient conique est la plus simple pour les valeurs statiques ou mise à jour JS. Pour les animations plus lisses, la méthode Rotate Clip-Path donne plus de contrôle. Choisissez en fonction des besoins de support et d'animation de votre navigateur.

    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 de ce site Web
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

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

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.

Stock Market GPT

Stock Market GPT

Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment empêcher les images de s'étirer ou de rétrécir avec CSS Comment empêcher les images de s'étirer ou de rétrécir avec CSS Sep 21, 2025 am 12:04 AM

UseObject-FitorMax-widthWithHeight: Autotopreventimagedistortion; Object-FitControlshowImagesFillContainers whilepreservingaspeclectratios, andmax-width: 100%; hauteur: autoensirsesworSeSivesCalings withoutstreching.

Comment utiliser la propriété Pointer-Events dans CSS Comment utiliser la propriété Pointer-Events dans CSS Sep 17, 2025 am 07:30 AM

Thepointer-EventsPropertyInSssControlswheTheRelementCanBetHetRetGofPoInterEvents.1.USEPOINTER-EVENTS: nontodisable InteractionsLikEclicksorhovers WransHelementElement Visincally Visible.2.ApplyitoOverlayStoallowClick-ThroughViOronngeLible.20

Comment créer un menu déroulant avec CSS pur Comment créer un menu déroulant avec CSS pur Sep 20, 2025 am 02:19 AM

Utilisez HTML et CSS pour créer des menus déroulants sans JavaScript. 2. Déclenchez l'affichage sous-menu via: Hover Pseudo-Class. 3. Utilisez des listes imbriquées pour construire une structure et définissez les effets d'affichage cachés et suspendus dans CSS. 4. L'animation de transition peut être ajoutée pour améliorer l'expérience visuelle.

Comment ajouter un effet d'ombre avec CSS Comment ajouter un effet d'ombre avec CSS Sep 20, 2025 am 12:23 AM

Usethebox-shadowpropertytoadddropshadows.definehorizontalandverticaloffsets, flou, propagation, couleur, andoptionalinsetForrinnershadows.multipleshadowsarecomma-separisé.example: box-shadow: 5px10px8pxrgba (0,0,0,0.3); créationasoftblack.

Comment appliquer un filtre à une image avec CSS Comment appliquer un filtre à une image avec CSS Sep 21, 2025 am 02:27 AM

ThecsssfilterPropertyallowsEasyImagestyling withheffets likeblur, luminosité et grayscale.Ususefilter: filtre-fonction (valeur) onImagesorBackgroundMages.COMMONFUNCTIONSINCULLEBLUR (PX), luminosité (%), contraste (%),.

Comment ajouter un fond dégradé dans CSS Comment ajouter un fond dégradé dans CSS Sep 16, 2025 am 05:30 AM

Pour ajouter un fond de gradient CSS, utilisez les attributs d'arrière-plan ou d'arrière-plan pour coopérer avec des fonctions telles que linéaire-gradient (), radial-gradient (); Sélectionnez d'abord le type de dégradé, définissez la direction et la couleur, et vous pouvez le contrôler finement via des points d'accostage des couleurs, de la forme, de la taille et d'autres paramètres, tels que le gradient linéaire (Torigh

Comment créer une image circulaire dans CSS? Comment créer une image circulaire dans CSS? Sep 15, 2025 am 05:33 AM

Utilisez Border-Radius: 50% pour transformer les images de largeur et de hauteur égales en cercles, combinez l'adaptation d'objets et le rapport d'aspect pour assurer la forme et la culture, et ajouter des frontières, des ombres et d'autres styles pour améliorer les effets visuels.

Comment créer des lacunes dans une disposition de la grille CSS? Comment créer des lacunes dans une disposition de la grille CSS? Sep 22, 2025 am 05:15 AM

Utilisez les attributs GAP, Row-Gap ou Column-Gap pour créer un espacement entre les éléments de la grille dans la disposition CSSGrid. GAP est l'attribut d'abréviation pour régler l'espacement des colonnes de ligne, qui peut accepter une ou deux valeurs de longueur. La ligne de ligne et la colonne contrôlent individuellement l'espacement entre les lignes et les colonnes, et les unités de support telles que PX, REM et%.

See all articles