How about simply doing it like this?
Demo
div {
border: 10px solid #000;
height: 50px;
width: 50px;
border-radius: 50%;
position: relative;
}
div:after {
height: 0;
width: 0;
display: block;
position: absolute;
right: -12px;
content: " ";
border-bottom: 12px solid #fff;
border-right: 12px solid transparent;
transform: rotate(10deg);
}
Explanation: What we are doing here is using :after
pseudo to position the element absolute to the circle and using transform
property to rotate the triangle.
Demo 2 (With animation)
div {
border: 10px solid #000;
height: 50px;
width: 50px;
border-radius: 50%;
position: relative;
animation: spin 1s infinite linear;
}
div:after {
height: 0;
width: 0;
display: block;
position: absolute;
right: -12px;
content: " ";
border-bottom: 12px solid #fff;
border-right: 12px solid transparent;
transform: rotate(10deg);
}
@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
My Suggestion: As you updated your qustion, you said you wanted a transparent gutter, I would suggest you to use a .png
image and rotate it, rather than writing 100 lines of CSS and worrying about cross browser compatibility. Alternatively as I've shared a link in the comments, you can use CSS masking.