Quería hacer un círculo punteado con CSS y lo creé con el siguiente proceso.
Aunque el círculo punteado podría mostrarse mediante este proceso, el espacio entre el final y el comienzo de la línea punteada se volvió estrecho y el espacio no fue uniforme.
.c {
width: 500px;
height: 500px;
border-width: 15px;
border-style: dashed;
border-radius: 600px;
}
<div class="c"></div>
¿Hay alguna manera de hacer que la brecha sea uniforme? ¿podemos controlar también la brecha entre guiones?
Si eso no es posible solo con CSS, estamos considerando usar JavaScript o algo similar.
javascript
html
css
Temani Afif
fuente
fuente
Respuestas:
Aquí hay una versión optimizada de la
conic-gradient()
solución donde puede controlar fácilmente la cantidad de guiones y el espacio entreMostrar fragmento de código
Para tener total transparencia consideramos
mask
Mostrar fragmento de código
Para hacer las cosas divertidas , incluso podemos considerar una coloración más compleja en los guiones:
Mostrar fragmento de código
Seguramente querrás algo de contenido dentro, así que mejor aplica la máscara / fondo en un pseudo elemento para evitar enmascarar el contenido:
Mostrar fragmento de código
Pregunta relacionada para obtener más ideas de CSS para lograr un resultado similar: Gráfico de sectores de CSS solamente: ¿cómo agregar espaciado / relleno entre sectores? . Encontrará más formas compatibles que
conic-gradient()
(en realidad no funciona en Firefox), pero debe usar mucho código, a diferencia de la solución anterior, donde solo se necesita un elemento.Usando SVG también necesitará algunos cálculos para asegurarse de tener un espaciado uniforme:
Con las variables CSS podemos facilitarlo, pero no es compatible con todos los navegadores (en realidad no funciona en Firefox)
Mostrar fragmento de código
También podemos usar fácilmente el SVG como fondo para hacer las cosas más flexibles:
Mostrar fragmento de código
Cuando se usa como fondo, debe establecer manualmente el valor para que necesite un fondo diferente cada vez. Solo podemos hacer que el color sea fácil de cambiar usando SVG como máscara;
Mostrar fragmento de código
fuente
conic-gradient()
o norepeating-conic-gradient()
. Por lo tanto, estos podrían ser un enfoque viable en el futuro, pero no es algo que pueda usarse en este momento, si se desea la funcionalidad de navegador cruzado.Usar
stroke-dasharray
con SVG.O puede usar
radial-gradient()
,repeating-conic-gradient()
funciones sin Firefox.fuente
conic-gradient
se vuelve irregular por alguna razón ...