Pour toute personne intéressée, pour recevoir des clics sur un remplissage vide: voir SVG Detect Onclick events sur "fill: none" - c'est-à-dire la possibilité d'utiliser fill="none"avec pointer-events="visible".
Fabien Snauwaert
Réponses:
646
Vous utilisez un attribut supplémentaire; fill-opacity: Cet attribut prend un nombre décimal compris entre 0,0 et 1,0, inclus; où 0,0 est complètement transparent.
vous pouvez également les placer dans l'attribut style: <rect style = "fill: # 044B94; fill-opacity: 0.4;" />
PeterVermont
Dans ce qui précède, "fill-opacity" et "stroke-opacity" doivent être remplacés par "fill_opacity" et "stroke_opacity" (c'est-à-dire remplacer les tirets par des traits de soulignement).
mermaldad
1
@mermaldad C'est incorrect; voir la spécification . Dans certaines langues qui ne permettent pas aux noms de contenir des traits d'union, les bibliothèques pour travailler avec SVG utilisent des noms comme fill_opacity, mais en SVG et CSS, c'est le cas fill-opacity.
Williham Totland
@WillihamTotland, merci pour la correction. J'ai sauté mentalement directement sur "comment implémenter ceci en utilisant svgwrite en Python". Là, vous devez remplacer les tirets par des traits de soulignement.
mermaldad
78
En tant que solution pas encore complètement standardisée (bien qu'en alignement avec la syntaxe des couleurs dans CSS3), vous pouvez utiliser par exemple fill="rgba(124,240,10,0.5)". Fonctionne très bien dans Firefox, Opera, Chrome.
@williham: oui l'opacité de remplissage est dans la recommandation SVG, et il n'y a aucun problème à l'utiliser. La syntaxe CSS3 est en couleur CSS3, ce qui est à un pas de devenir une recommandation w3c. SVG 1.1 ne fait pas référence à CSS3 Color car il n'était pas disponible à l'époque, une future version de SVG le fera probablement.
Erik Dahlström,
7
Je veux juste mentionner, un endroit où cela ne semble pas fonctionner est dans Inkscape
George Mauer
2
J'ai utilisé cette solution sur Highcharts, et cela a fonctionné. Il s'est converti rgbaen rgbet lui a automatiquement ajouté l' fill-opacityattribut. Je ne sais pas si c'est ainsi que cela fonctionne dans les SVG normaux, mais c'est ainsi que cela a fonctionné là-bas. Quoi qu'il en soit, merci.
Hanna
3
Puis-je obtenir des éclaircissements sur les navigateurs qui prennent réellement en charge rgba en svgs en ligne?
redanimalwar
6
fill="#044B9466"
Il s'agit d'une couleur RGBA en notation hexadécimale à l'intérieur du SVG, définie avec des valeurs hexadécimales. Ceci est valide, mais tous les programmes ne peuvent pas l'afficher correctement ...
À partir d'août 2017: les couleurs de remplissage RGBA s'afficheront correctement sur Mozilla Firefox (54), Apple Safari (10.1) et "Quick View" de Mac OS X Finder. Cependant, Google Chrome n'a pas pris en charge cette syntaxe jusqu'à la version 62 (était précédemment pris en charge à partir de la version 54 avec l'indicateur de fonctionnalités de la plateforme expérimentale activé).
Savez-vous s'ils ont changé quelque chose récemment? J'avais une application chrome qui utilisait fill: rgb (...) et maintenant elle est complètement cassée. J'apprécierai votre aide!
Mariodiar
La bibliothèque Qt SVG (Qt 5.9.3) ne peut pas non plus gérer les couleurs RGBA jusqu'à présent ni en forme hexadécimale "# 00000000" ni en tant que "rgba".
bkausbk
2
Utilisez l'attribut fill-opacitydans votre élément de SVG.
La valeur par défaut est 1, le minimum est 0, à l'étape utilisez des valeurs décimales EX: 0,5 = 50% d'alpha. Remarque: Il est nécessaire de définir la fillcouleur à appliquer fill-opacity.
Pour rendre un remplissage complètement transparent, fill="transparent"semble fonctionner dans les navigateurs modernes. Mais cela ne fonctionnait pas dans Microsoft Word (pour Mac), je devais l'utiliser fill-opacity="0".
fill="none"
avecpointer-events="visible"
.Réponses:
Vous utilisez un attribut supplémentaire;
fill-opacity
: Cet attribut prend un nombre décimal compris entre 0,0 et 1,0, inclus; où 0,0 est complètement transparent.Par exemple:
De plus, vous disposez des éléments suivants:
stroke-opacity
attribut pour le traitopacity
pour l'objet entierla source
fill_opacity
, mais en SVG et CSS, c'est le casfill-opacity
.En tant que solution pas encore complètement standardisée (bien qu'en alignement avec la syntaxe des couleurs dans CSS3), vous pouvez utiliser par exemple
fill="rgba(124,240,10,0.5)"
. Fonctionne très bien dans Firefox, Opera, Chrome.Voici un exemple .
la source
rgba
enrgb
et lui a automatiquement ajouté l'fill-opacity
attribut. Je ne sais pas si c'est ainsi que cela fonctionne dans les SVG normaux, mais c'est ainsi que cela a fonctionné là-bas. Quoi qu'il en soit, merci.Il s'agit d'une couleur RGBA en notation hexadécimale à l'intérieur du SVG, définie avec des valeurs hexadécimales. Ceci est valide, mais tous les programmes ne peuvent pas l'afficher correctement ...
Vous pouvez trouver le support du navigateur pour cette syntaxe ici: https://caniuse.com/#feat=css-rrggbbaa
À partir d'août 2017: les couleurs de remplissage RGBA s'afficheront correctement sur Mozilla Firefox (54), Apple Safari (10.1) et "Quick View" de Mac OS X Finder. Cependant, Google Chrome n'a pas pris en charge cette syntaxe jusqu'à la version 62 (était précédemment pris en charge à partir de la version 54 avec l'indicateur de fonctionnalités de la plateforme expérimentale activé).
la source
Utilisez l'attribut
fill-opacity
dans votre élément de SVG.La valeur par défaut est 1, le minimum est 0, à l'étape utilisez des valeurs décimales EX: 0,5 = 50% d'alpha. Remarque: Il est nécessaire de définir la
fill
couleur à appliquerfill-opacity
.Voir mon exemple .
Références .
la source
Pour rendre un remplissage complètement transparent,
fill="transparent"
semble fonctionner dans les navigateurs modernes. Mais cela ne fonctionnait pas dans Microsoft Word (pour Mac), je devais l'utiliserfill-opacity="0"
.la source
fill="none"
fonctionne, maisfill="transparent"
ne fonctionne pas.