Tengo el siguiente código:
<span>
<svg height="32" version="1.1" width="32" xmlns="http://www.w3.org/2000/svg" style="overflow: hidden; position: relative; left: -0.0166626px; top: -0.983337px;">
<desc></desc>
<defs/>
<path style="" fill="#333333" stroke="none" d="M15.985,5.972C8.422,5.972,2.289999999999999,10.049,2.289999999999999,15.078C2.289999999999999,17.955,4.302999999999999...............1,27.68,22.274Z"/>
</svg>
</span>
¿Es posible cambiar el color de relleno de la ruta SVG con CSS o algún otro medio sin cambiarlo realmente dentro de la etiqueta de ruta?
<symbol>
y<use>
. Mira esta respuesta .Respuestas:
Sí, puede aplicar CSS a SVG, pero debe hacer coincidir el elemento, al igual que al diseñar HTML. Si solo desea aplicarlo a todas las rutas SVG, puede usar, por ejemplo:
El CSS externo parece anular el
fill
atributo de la ruta , al menos en los navegadores WebKit y Gecko que probé. Por supuesto, si escribe, digamos,<path style="fill: green">
eso también anulará el CSS externo.fuente
<svg>
etiqueta.<use href="external.svg#objId" />
y su CSS local aún se aplicará en algún grado.fill: #000;
lugar debackground: #000;
.si desea cambiar el color al pasar el cursor sobre el elemento, intente esto:
fuente
Si ingresa al código fuente de un archivo SVG, puede cambiar el color de relleno modificando la propiedad de relleno.
Use su editor de texto favorito, abra el archivo SVG y juegue con él.
fuente
pones este css para svg circle.
fuente
Encontré un recurso increíble sobre trucos css: https://css-tricks.com/using-svg/
Hay un puñado de soluciones explicadas allí.
Preferí el que requería ediciones mínimas al svg de origen, y tampoco requería que se incrustara en el documento html. Esta opción utiliza la
<object>
etiqueta.Agregue el archivo svg a su html usando
<object>
; También declaró atributos htmlwidth
yheight
. Usando estos anchos y alturas, el documento svg no se escala, lo solucioné usando unatransform: scale(...)
declaración css para lasvg
etiqueta en mi archivo svg css asociado.Cree un archivo CSS para adjuntarlo a su documento svn. Mi ruta de svg de origen se amplió a 16px, la amplié a 64 con un factor de cuatro. Solo tenía una ruta, por lo que no necesitaba seleccionarla más específicamente, sin embargo, la ruta tenía un atributo de relleno, así que tuve que usar
!IMPORTANT
para forzar que el CSS tomara precedente.Edite su archivo svg de destino, antes de la
<svg
etiqueta de apertura , para incluir una hoja de estilo; Tenga en cuenta que href es relativo a la url del archivo svg.fuente
Puede usar esta sintaxis, pero requerirá algunos cambios en el archivo SVG. Y elimine cualquier relleno / trazo del SVG mismo.
icon.svg
icon.html
fuente
currentColor
Es posible cambiar el color de relleno de ruta de la svg. Vea a continuación el fragmento de CSS:
Para aplicar el color a toda la ruta:
svg > path{ fill: red }
Para solicitar la primera ruta d:
svg > path:nth-of-type(1){ fill: green }
Para solicitar la segunda ruta d:
svg > path:nth-of-type(2){ fill: green}
Para solicitar la ruta d diferente, cambie solo el número de ruta:
svg > path:nth-of-type(${path_number}){ fill: green}
Para admitir el CSS en Angular 2 a 8, use el concepto de encapsulación:
fuente
Pon todo en tu svg:
En CSS:
Para usar pseudo-clases:
Explicación
raíz = página html.
--svgcolor = una variable.
span.github = seleccionando un elemento span con un github de clase, un icono de svg dentro y asignando el cursor flotante de pseudo-clase.
fuente