I want to use this technique and change the SVG color, but so far I haven't been able to do so. I use this in the CSS, but my image is always black, no matter what.
My code:
.change-my-color {
fill: green;
}
<svg>
<image class="change-my-color" xlink:href="https://svgur.com/i/AFM.svg" width="96" height="96" src="ppngfallback.png" />
</svg>
The problem here is that CSS styles are applied to 'svg' elements only and not their children (in this case, the 'image' element). If you want to change the color of the 'image' element, you can use the CSS filter property.
.change-my-color-image {
filter: hue-rotate(120deg);
}
To change the color of the SVG image, replace 'hue-rotate' with 'saturate' and set the value to 0.
.change-my-color-image {
filter: saturate(0);
}
Alternatively, you can set a fill style directly in the SVG markup.
<svg>
<image class="change-my-color" xlink:href="https://svgur.com/i/AFM.svg" width="96" height="96" src="ppngfallback.png" fill="green" />
</svg>
The CSS property fill
applies to shapes in an SVG document, not images. To change the color of an image in an SVG document, you should use the filter
property, with the hue-rotate
filter function. For example, the CSS code below would make the image in your SVG document green:
.change-my-color {
filter: hue-rotate(120deg);
}
The fill
property only works on shape
elements in SVG. To change the color of an image, you have to use the filter
property.
Here is an example of how you can change the color of an SVG image using a filter:
.change-my-color {
filter: invert(100%);
}
In this example, the filter
property is set to invert(100%)
, which will invert the colors of the image. You can use other filter values to achieve different color effects. For example, you can use the hue-rotate
filter to change the hue of the image, or the saturate
filter to change the saturation of the image.
To change the color of an 'svg' element, you can use the 'fill' property. However, in your code, you are trying to change the color of an 'image' element inside an 'svg' element. To change the color of an 'image' element, you can use the 'filter' property.
Here is an example of how to change the color of an 'image' element inside an 'svg' element using the 'filter' property:
.change-my-color {
filter: invert(1);
}
This code will invert the colors of the 'image' element, making it appear green.
Note that the 'filter' property can be used to achieve a variety of effects, including changing the brightness, contrast, and saturation of an image. For more information on the 'filter' property, please see the following resources:
* [MDN Web Docs: filter](https://developer.mozilla.org/en-US/docs/Web/CSS/filter)
* [W3Schools: CSS Filters](https://www.w3schools.com/css/css3_filters.asp)
The reason the image is always black is because the fill
property is not supported on the element in SVG. To change the color of an image in SVG, you need to use the
filter
property.
Here is an example of how you can change the color of an image using the filter
property:
.change-my-color {
filter: hue-rotate(90deg);
}
This will change the color of the image to green. You can change the value of the hue-rotate()
function to change the color to whatever you want.
Here is a list of some other values that you can use for the hue-rotate()
function:
* hue-rotate(0deg)
: No change
* hue-rotate(30deg)
: Rotate the hue by 30 degrees
* hue-rotate(60deg)
: Rotate the hue by 60 degrees
* hue-rotate(90deg)
: Rotate the hue by 90 degrees
* hue-rotate(120deg)
: Rotate the hue by 120 degrees
* hue-rotate(180deg)
: Rotate the hue by 180 degrees
* hue-rotate(270deg)
: Rotate the hue by 270 degrees
* hue-rotate(360deg)
: Rotate the hue by 360 degrees
1