Maison > interface Web > tutoriel CSS > le corps du texte

Comment puis-je créer des cercles segmentés en utilisant CSS sans JavaScript ?

Patricia Arquette
Libérer: 2024-10-25 03:49:02
original
469 Les gens l'ont consulté

How can I create segmented circles using CSS without JavaScript?

Segments dans un cercle à l'aide de CSS

Créer des cercles à l'aide du hack border-radius de CSS est une pratique courante, mais comment obtenir un segment segmenté apparence comme celle représentée dans l’image fournie ? Existe-t-il un moyen d'y parvenir en utilisant HTML et CSS, à l'exclusion de JavaScript ?

Solution

Solution 2024

Explorons différents cas selon que les segments doivent être des éléments et s'ils sont de taille égale :

1. Les tranches n'ont pas besoin d'être des éléments et elles sont égales

Dans ce cas, nous pouvons exploiter une palette de couleurs et utiliser SCSS pour générer un conic-gradient() qui répartit uniformément les tranches. Par exemple, en utilisant la palette de coolors.co, nous pouvons créer une fonction SCSS :

<code class="scss">@function stops($c) {
  $n: length($c); // number of slices
  $p: 100%/$n; // slice angle as a % of circle
  $l: (); // list of stops, initially empty
  
  @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

Cette fonction génère une liste d'arrêt pour des tranches égales. Nous pouvons ensuite l'utiliser au sein d'un conic-gradient() :

<code class="css">.pie {
  width: 20em; /* set width to desired pie diameter */
  aspect-ratio: 1; /* make the element square */
  border-radius: 50%; /* turn square into disc */
  /* equally-sized slices */
  background: conic-gradient(stops($c))
}</code>
Copier après la connexion

Cette approche nous permet de créer des segments égaux sans avoir besoin d'éléments séparés. Ajuster l'angle de départ du conic-gradient() devient également réalisable.

2. Autres cas

Nous pouvons explorer des cas supplémentaires tels que :

  • Les tranches n'ont pas besoin d'être des éléments mais elles ne sont pas égales
  • Les tranches doivent contenu/ pour animer et ils sont égaux
  • Les tranches ont besoin de contenu/ pour s'animer et elles ne sont pas égales

Chacun de ces cas nécessite des approches et des techniques uniques qui vont au-delà la portée de la requête d'origine.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!