J'ai le code suivant:
<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>
Est-il possible de changer la couleur de remplissage du chemin SVG avec CSS ou tout autre moyen sans le changer réellement à l'intérieur de la balise path?
<symbol>
et<use>
. Voir cette réponse .Réponses:
Oui, vous pouvez appliquer CSS à SVG, mais vous devez faire correspondre l'élément, tout comme lors du style HTML. Si vous souhaitez simplement l'appliquer à tous les chemins SVG, vous pouvez utiliser, par exemple:
Le CSS externe semble remplacer l'
fill
attribut du chemin , au moins dans les navigateurs WebKit et Gecko que j'ai testés. Bien sûr, si vous écrivez, disons,<path style="fill: green">
cela remplacera également le CSS externe.la source
<svg>
balise.<use href="external.svg#objId" />
et votre CSS local s'appliquera toujours dans une certaine mesure.fill: #000;
au lieu debackground: #000;
.si vous souhaitez changer de couleur en survolant l'élément, essayez ceci:
la source
Si vous allez dans le code source d'un fichier SVG, vous pouvez changer la couleur de remplissage en modifiant la propriété de remplissage.
Utilisez votre éditeur de texte préféré, ouvrez le fichier SVG et jouez avec.
la source
vous mettez ce css pour le cercle svg.
la source
Je suis tombé sur une ressource incroyable sur css-tricks: https://css-tricks.com/using-svg/
Il y a une poignée de solutions expliquées ici.
J'ai préféré celui qui nécessitait un minimum de modifications du svg source, et je n'ai pas non plus exigé qu'il soit intégré dans le document html. Cette option utilise la
<object>
balise.Ajoutez le fichier svg dans votre html en utilisant
<object>
; J'ai également déclaré des attributs htmlwidth
etheight
. En utilisant ces largeurs et hauteurs, le document svg n'est pas mis à l'échelle, j'ai travaillé autour de cela en utilisant unetransform: scale(...)
instruction css pour lasvg
balise dans mon fichier css svg associé.Créez un fichier css à joindre à votre document svn. Mon chemin SVG source a été mis à l'échelle à 16 pixels, je l'ai mis à l'échelle à 64 avec un facteur de quatre. Il n'avait qu'un seul chemin, donc je n'avais pas besoin de le sélectionner plus spécifiquement, mais le chemin avait un attribut fill, donc j'ai dû utiliser
!IMPORTANT
pour forcer le CSS à prendre le précédent.Modifiez votre fichier svg cible, avant la
<svg
balise d' ouverture , pour inclure une feuille de style; Notez que le href est relatif à l'url du fichier svg.la source
Vous pouvez utiliser cette syntaxe mais elle nécessitera quelques modifications dans le fichier SVG. Et supprimez tout remplissage / trait du SVG lui-même.
icon.svg
icon.html
la source
currentColor
Il est possible de changer la couleur de remplissage du chemin du svg. Voir ci-dessous pour l'extrait CSS:
Pour appliquer la couleur pour tout le chemin:
svg > path{ fill: red }
Pour postuler au premier chemin d:
svg > path:nth-of-type(1){ fill: green }
Pour postuler au deuxième chemin d:
svg > path:nth-of-type(2){ fill: green}
Pour postuler pour le chemin d différent, modifiez uniquement le numéro de chemin:
svg > path:nth-of-type(${path_number}){ fill: green}
Pour prendre en charge le CSS dans Angular 2 à 8, utilisez le concept d'encapsulation:
la source
Mettez tous vos svg:
En CSS:
Pour utiliser des pseudo-classes:
Explication
racine = page html.
--svgcolor = une variable.
span.github = sélectionner un élément span avec un github de classe, une icône svg à l'intérieur et affecter un survol de pseudo-classe.
la source