2016-10-11 2 views
1

Эй, ребята, у меня очень расстраивающее время здесь с CSS, в основном я пытаюсь пересечь границы с помощью z-index, чтобы получить визуальное изображение границы 1/5 2/5-я граница 3/5-я граница и 4/5-ая граница кругаДве границы друг на друга, не выстроены в линию

Но при этом абсолютные расположенные границы не выровняются точно, вы можете увидеть цветное кровотечение позади него, почему это? Как еще я должен это делать? Вот jsFiddle и код ниже.

.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>

ответ

2

Ваша проблема сглаживание, что приводит цвета смешать, чтобы предотвратить «ступенчатость» и делает вид, что цвета кровотечения. Однако, если вы увеличиваете масштаб, вы можете видеть, что кровотечение отсутствует. Это, и числа с плавающей запятой не сохраняются точно, поэтому вычисление CSS в кругах очень слабо.

Я бы использовал что-то вроде Adobe Illustrator или InkScape или даже инструмент онлайн-графики и сделал SVG того, что вы хотите.

VERDICT: Используйте что-то вроде Adobe Illustrator или InkScape или даже инструмент для онлайн-графики и сделайте SVG того, что вы хотите.

+0

Даже если вы сделаете границе сплошной цвет, красный все еще кровоточит за синей каймой https://jsfiddle.net/6qtLop51/2/ к тому же в вашем фрагменте кода я все еще могу видеть красный за синим. @theEpsilon –

+0

@JeffDavenport Что бы вы хотели вместо этого? В основном синий и только красный? – theEpsilon

+0

Полностью синий и нулевой красный на голубой части границы. –

0

Это то, что вы хотите?

.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

Не точно попытайтесь достичь этого результата сохранения, используя границу 1/5, как это https://jsfiddle.net/6qtLop51/9/ –