CSS:
CSS ( Quantastical answer ), CSS ? . , / CSS , . , , . Clip Path IE , FF SVG.
CSS, . skew 4 ( ), 50% 50% . skew , , . , , , , , - . , div , ( ).
.circle {
position: relative;
height: 100px;
width: 100px;
}
.circle, .dummy-border, .border, .dummy-background {
border-radius: 50%;
overflow: hidden;
}
.dummy-border, .border, .dummy-background {
position: absolute;
top: 0px;
left: 0px;
height: 100%;
width: 100%;
}
.border {
border: 4px solid #AAA;
border-radius: 50%;
z-index: -2;
}
.dummy-background {
padding: 4px;
background-color: white;
background-clip: content-box;
}
.circle:after, .circle:before, .dummy-border:before, .dummy-border:after {
position: absolute;
content: '';
height: 50%;
width: 50%;
z-index: -1;
}
.circle:before {
top: 0%;
left: 0%;
background: red;
transform-origin: right bottom;
transform: skewY(30deg) skewX(30deg);
}
.circle:after {
top: 0%;
left: 50%;
background: green;
transform-origin: left bottom;
transform: skewY(-30deg) skewX(-30deg);
}
.dummy-border:before {
top: 50%;
left: 0%;
background: orange;
transform-origin: right top;
transform: skewY(-210deg) skewX(-30deg);
}
.dummy-border:after {
top: 50%;
left: 50%;
background: blue;
transform-origin: left top;
transform: skewY(210deg) skewX(30deg);
}
*, *:after, *:before {
box-sizing: border-box;
}
<div class='circle'>
<div class='border'></div>
<div class='dummy-border'></div>
<div class='dummy-background'></div>
</div>
SVG:
- SVG . SVG / , , .
SVG , , . . - , , .
5 circle (1 1 ). #gray , ( ). stroke-dasharray stroke-dashoffset.
stroke-dasharray , () () . (2 * PI * r), 1/8 .
stroke-dashoffset , . 0deg ( , (100%, 50%)). , .
svg {
height: 100px;
width: 100px;
}
circle {
stroke-width: 4px;
fill: transparent;
}
#gray{
stroke: #AAA;
}
#red{
stroke: red;
stroke-dasharray: 35.5, 284;
stroke-dashoffset: -159.75;
}
#orange{
stroke: orange;
stroke-dasharray: 35.5, 284;
stroke-dashoffset: -88.75;
}
#blue{
stroke: blue;
stroke-dasharray: 35.5, 284;
stroke-dashoffset: -17.75;
}
#green{
stroke: green;
stroke-dasharray: 35.5, 284;
stroke-dashoffset: -230.75;
}
<svg viewBox='0 0 100 100'>
<circle cx='50' cy='50' r='45' id='gray'/>
<circle cx='50' cy='50' r='45' id='red'/>
<circle cx='50' cy='50' r='45' id='green'/>
<circle cx='50' cy='50' r='45' id='blue'/>
<circle cx='50' cy='50' r='45' id='orange'/>
</svg>