Che ne dici di farlo semplicemente in questo modo?
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);
}
Spiegazione: Quello che stiamo facendo qui sta usando :after
pseudo per posizionare l'elemento di assoluta al cerchio e l'utilizzo di transform
proprietà per ruotare il triangolo.
Demo 2 (con animazione)
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); }
}
Il mio suggerimento: Come hai aggiornato il tuo qustion, hai detto che volevi una grondaia trasparente, vi suggerisco di utilizzare un'immagine di .png
e ruotare piuttosto che scrivere 100 righe di CSS e preoccuparsi della compatibilità tra browser. In alternativa, dato che ho condiviso un link nei commenti, puoi usare il mascheramento CSS.
fonte
2013-07-30 11:40:56
Che cosa è esattamente attualmente non va con gli angoli? Intendi la piccola lacuna nel cerchio interno? È un problema che il cerchio esterno non sia un vero cerchio? –
Gli elementi precedente e successivo non sembrano corretti. Dovrebbero essere completamente collegati al "cerchio". Non è abbastanza simile alla gif. – Finnnn