Ich wollte mit CSS einen gepunkteten Kreis erstellen und ihn mit dem folgenden Prozess erstellen.
Obwohl der gestrichelte Kreis durch diesen Vorgang angezeigt werden konnte, wurde die Lücke zwischen dem Ende und dem Anfang der gestrichelten Linie eng und die Lücke war nicht gleichmäßig.
.c {
width: 500px;
height: 500px;
border-width: 15px;
border-style: dashed;
border-radius: 600px;
}
<div class="c"></div>
Gibt es eine Möglichkeit, die Lücke zu vereinheitlichen? Können wir auch die Lücke zwischen Bindestrichen kontrollieren?
Wenn dies mit CSS allein nicht möglich ist, ziehen wir die Verwendung von JavaScript oder Ähnlichem in Betracht.
javascript
html
css
Temani Afif
quelle
quelle
Antworten:
Hier ist eine optimierte Version der
conic-gradient()
Lösung, mit der Sie die Anzahl der Striche und den Abstand dazwischen einfach steuern könnenCode-Snippet anzeigen
Um volle Transparenz zu haben, betrachten wir
mask
Code-Snippet anzeigen
Um die Dinge lustig zu machen , können wir sogar eine komplexere Färbung der Striche in Betracht ziehen:
Code-Snippet anzeigen
Möglicherweise möchten Sie sicher etwas Inhalt darin haben, also wenden Sie die Maske / den Hintergrund besser auf ein Pseudoelement an, um zu vermeiden, dass der Inhalt maskiert wird:
Code-Snippet anzeigen
Verwandte Frage, um mehr CSS-Ideen zu erhalten, um ein ähnliches Ergebnis zu erzielen: Nur CSS-Kreisdiagramm - Wie füge ich Abstand / Abstand zwischen Slices hinzu? . Sie finden mehr unterstützte Möglichkeiten als
conic-gradient()
(tatsächlich funktioniert es unter Firefox nicht), aber Sie müssen im Gegensatz zu der oben genannten Lösung, bei der nur ein Element benötigt wird, viel Code verwenden.Bei Verwendung von SVG benötigen Sie auch einige Berechnungen, um sicherzustellen, dass Sie einen einheitlichen Abstand haben:
Mit CSS-Variablen können wir es einfacher machen, aber es wird nicht im gesamten Browser unterstützt (tatsächlich funktioniert es in Firefox nicht).
Code-Snippet anzeigen
Wir können die SVG auch leicht als Hintergrund verwenden, um die Dinge flexibler zu gestalten:
Code-Snippet anzeigen
Bei Verwendung als Hintergrund müssen Sie den Wert manuell einstellen, damit Sie jedes Mal einen anderen Hintergrund benötigen. Wir können die Farbe nur leicht ändern, wenn wir das SVG als Maske verwenden.
Code-Snippet anzeigen
quelle
conic-gradient()
oder nichtrepeating-conic-gradient()
. Dies könnte also in Zukunft ein praktikabler Ansatz sein, der jedoch derzeit nicht verwendet werden kann, wenn browserübergreifende Funktionen gewünscht werden.Verwendung
stroke-dasharray
mit SVG.Oder Sie können verwenden
radial-gradient()
,repeating-conic-gradient()
Funktionen , ohne Firefox.quelle
conic-gradient
wird aus irgendeinem Grund