Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Change fill color of data-URI SVG path in pseudo element

Is it possible to use CSS to change the color of a SVG path which is within a pseudo element data-URI?

<a href="http://externalurl/">External Site</a>

CSS:

a[href^="http://"]:after { content: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIHg9IjBweCIgeT0iMHB4IiB3aWR0aD0iMTVweCIgaGVpZ2h0PSIxM3B4IiB2aWV3Qm94PSItMyAyMSAxNSAxMyIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAtMyAyMSAxNSAxMyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBhdGggZmlsbD0iIzk5OTk5QSIgZD0iTTEyIDIxSDB2M2gtM3YxMEg5di0zaDNWMjF6IE04IDMzSC0ydi04aDJ2Nmg4VjMzeiBNOSAyN0g3djJINXYtMkgzdi0yaDJ2LTJoMnYyaDJWMjd6Ii8+PC9zdmc+); }
a[href^="http://"]:hover:after path { fill: #000; }
like image 834
Simon Bérubé Avatar asked Aug 26 '13 19:08

Simon Bérubé


1 Answers

Not like that, since the svg contents is in another document. Styles don't apply across documents.

And since the svg will be treated as a dumb image when referenced like this via CSS, putting the path hover style inside the svg won't help either.

I'd recommend putting the svg inline in the document if you want to style some shapes inside of it.

That said, another possibility for changing the color of an image is using filters, since they can be applied from outside. If your image is simple that might work.

like image 71
Erik Dahlström Avatar answered Oct 03 '22 04:10

Erik Dahlström