2016-10-11 1 views
1

Hey Leute haben eine wirklich frustrierende Zeit hier mit CSS, im Grunde versuche ich Grenzen mit dem Z-Index zu überlappen, um ein 1/5 Grenze zu sehen 2/5. Grenze 3./5. Grenze und 4./5. Grenze eines KreisesZwei Grenzen übereinander, sind nicht aufgereiht

Aber dabei sind die absolut positionierten Grenzen nicht genau ausgerichtet, man sieht die Farbe dahinter, warum ist das? Wie sollte ich das sonst tun? Hier ist die jsFiddle und der Code ist unten.

.circle { 
 
    padding: 20px; 
 
    border: 20px solid transparent; 
 
    border-top-color: red; 
 
    position: absolute; 
 
    border-radius: 50px; 
 
    z-index: 0; 
 
} 
 
.two { 
 
    border-top-color: blue; 
 
    z-index: 1; 
 
}
<div class="circle"></div> 
 
<div class="circle two"></div>

Antwort

2

Ihr Problem ist, Anti-Aliasing, welches die Farben führt zu mischen "jaggies" zu verhindern und macht es den Anschein, dass die Farben bluten. Wenn Sie jedoch heranzoomen, können Sie sehen, dass keine Blutung auftritt. Das und Fließkommazahlen werden nicht genau gespeichert, so dass die Berechnung der Kreise in CSS sehr geringfügig ist.

Ich würde etwas wie Adobe Illustrator oder InkScape oder sogar ein Online-Vektor-Grafik-Tool verwenden und ein SVG machen, was Sie wollen.

VERGESSEN: Verwenden Sie etwas wie Adobe Illustrator oder InkScape oder sogar ein Online-Vektor-Grafik-Tool und machen Sie eine SVG von was Sie wollen.

+0

Auch wenn Sie die Grenze eine Farbe machen, blutet die rote noch hinter dem blauen Rand https://jsfiddle.net/6qtLop51/2/ neben in Ihrem Snippet kann ich noch sehen das Rot hinter dem Blau. @theEpsilon –

+0

@ JeffDavenport Was möchten Sie stattdessen? Meist blau und nur ein bisschen rot? – theEpsilon

+0

Völlig blau und Nullrot auf dem blauen Teil der Grenze. –

0

Wollen Sie das?

.circle { 
 
    padding: 20px; 
 
    border: 20px solid; 
 
    border-top-color: red; 
 
    position: absolute; 
 
    border-radius: 50px; 
 
    z-index: 0; 
 
} 
 

 
.circletwo { 
 
    border-top-color: blue; 
 
    z-index: 123; 
 
}
<div class="circle"></div> 
 
<div class="circletwo"></div>

+0

Versuchen Sie nicht, dieses sichere Ergebnis mit einem 1/5 Rahmen wie diesem zu erreichen https://jsfiddle.net/6qtLop51/9/ –

Verwandte Themen