Heim > Web-Frontend > CSS-Tutorial > Wie kann ich Kreise mit CSS ohne JavaScript in gleiche oder unterschiedliche Größen segmentieren?

Wie kann ich Kreise mit CSS ohne JavaScript in gleiche oder unterschiedliche Größen segmentieren?

Mary-Kate Olsen
Freigeben: 2024-10-27 08:54:30
Original
905 Leute haben es durchsucht

How can I segment circles into equal or varying sizes using CSS without JavaScript?

Kreise mit CSS segmentieren

In CSS ist es möglich, kreisförmige Formen mithilfe der Eigenschaft border-radius zu erstellen. Das Hinzufügen von Segmenten zu diesen Kreisen erfordert jedoch weitere Untersuchungen. Lassen Sie uns untersuchen, wie Sie dies ohne JavaScript erreichen können.

Segmente gleicher Größe

Wenn die Segmente keine HTML-Elemente erfordern und gleich groß sind, können wir dies tun Verwenden Sie SCSS, um eine Liste von Stopps für einen Conic-Gradient() zu generieren. Eine benutzerdefinierte SCSS-Funktion kann erstellt werden, um die Stopps gleichmäßig zu verteilen:

<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>
Nach dem Login kopieren

Mit dieser Funktion können wir die Farben und Winkel für die Segmente innerhalb eines conic-gradient() definieren:

<code class="css">.pie {
    width: 20em; /* desired pie diameter */
    aspect-ratio: 1; /* square element */
    border-radius: 50%; /* disc shape */
    background: conic-gradient(stops(#f94144, #f3722c, #f8961e, #f9c74f, 
        #90be6d, #43aa8b, #577590))
}</code>
Nach dem Login kopieren

Dadurch wird ein Kreis mit gleich großen Segmenten erstellt, die gleichmäßig über den Umfang verteilt sind.

Segmente mit unterschiedlichen Größen

Wenn die Segmente unterschiedliche Größen erfordern, Wir können immer noch eine ähnliche Strategie anwenden. Die Funktion „stops()“ kann geändert werden, um zusätzliche Parameter zu verwenden, die den Start- und Endwinkel für jedes Segment definieren. Innerhalb der Verlaufsdefinition können wir diese Winkel dann für jeden Farbstopp angeben.

Wenn die Segmente außerdem Inhalte oder Animationen enthalten müssen, können wir HTML-Elemente verwenden und diese mithilfe von CSS-Transformationen innerhalb des Kreises positionieren. Indem wir ihre Größe und Winkel sorgfältig anpassen, können wir Segmente erstellen, die sich zu überlappen scheinen und so ein komplexes Design schaffen.

Das obige ist der detaillierte Inhalt vonWie kann ich Kreise mit CSS ohne JavaScript in gleiche oder unterschiedliche Größen segmentieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage