Maison > interface Web > tutoriel CSS > Comment pouvez-vous créer des segments dans un cercle à l'aide de CSS et gérer différentes exigences de tranche ?

Comment pouvez-vous créer des segments dans un cercle à l'aide de CSS et gérer différentes exigences de tranche ?

DDD
Libérer: 2024-10-25 08:12:28
original
591 Les gens l'ont consulté

How Can You Create Segments in a Circle Using CSS and Handle Different Slice Requirements?

Segments dans un cercle à l'aide de CSS : gestion de différentes exigences de tranche

Bien que CSS permette de créer des cercles à l'aide du hack de rayon de bordure, étendant cette technique inclure des segments présente un défi. Il existe cependant une solution qui consiste à combiner CSS et SCSS pour y parvenir sans recourir à JavaScript.

Générer des tranches égales

Si les tranches ne nécessitent pas d'éléments distincts et sont de taille égale, SCSS offre la flexibilité de générer une liste d'arrêts pour un gradient conique. Étant donné une palette de couleurs, une fonction SCSS peut répartir les arrêts uniformément autour du cercle.

<code class="scss">@function stops($c) {
  $n: length($c);
  $p: 100%/$n;
  $l: ();

  @for $i from 1 through $n {
    $l: $l, nth($c, $i) 
      if($i > 1, 0%, unquote(''))
      if($i < $n, round($i*$p), unquote(''))
  }

  @return $l
}</code>
Copier après la connexion

Utilisation de Conic-Gradient pour les segments

Avec la liste d'arrêt générée, un dégradé conique est utilisé pour peindre les segments sur l'élément circulaire. Pour les segments de taille égale, le code est simple :

<code class="css">.pie {
  width: 20em;
  aspect-ratio: 1;
  border-radius: 50%;
  background: conic-gradient(stops($c))
}</code>
Copier après la connexion

Contrôle de l'angle de départ

Pour garantir que les segments démarrent à un angle spécifique (autre que 12 o' clock), le mot-clé from peut être ajouté au conic-gradient() :

<code class="css">background: conic-gradient(from 17deg, stops($c))</code>
Copier après la connexion

Gestion des tranches riches en contenu

Pour les segments qui ont besoin de contenu ou nécessitent animation hors du cercle, une approche plus complexe est nécessaire. Cela implique d'utiliser des pseudo-éléments et des animations CSS pour obtenir le résultat souhaité.

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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal