I was also interested in learning about a simple way to do this as follows:
.img:hover { background: red; }
or
.img:hover { color: red; }
but no simple cross-browser solutions were found. However, I found that some browser solutions use SVG images with the fill attribute, which can be easily set using CSS.
However, if you use font-awesome (mostly a font that uses different icons instead of characters), it is easy to control with a simple CSS color attribute, as in the second example
So, if you want the simplest solution, find the SVG images for your project that match the ones you use. I found this process a little painful and decided to learn how to convert png and .jpg and .png to .svg . There is a command line tool that helps you do this, and it's called potrace . One thing that I would recommend paying attention to if you decide to use this tool is to use simple editors to contrast the dark for everything you want to convert to path for the given .svg and white / light (not transparent) background color and areas that you do not want to see in the .svg file.
source share