更改伪元素中 data-URI SVG 路径的填充颜色

Posted

技术标签:

【中文标题】更改伪元素中 data-URI SVG 路径的填充颜色【英文标题】:Change fill color of data-URI SVG path in pseudo element 【发布时间】:2013-08-29 09:02:15 【问题描述】:

是否可以使用 CSS 更改伪元素 data-URI 中的 SVG 路径的颜色?

<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; 

【问题讨论】:

【参考方案1】:

不是这样,因为 svg 内容在另一个文档中。样式不适用于文档。

由于通过 CSS 像这样引用时 svg 将被视为哑图像,因此将路径悬停样式放在 svg 内也无济于事。

如果您想在文档中设置一些形状的样式,我建议您将 svg 内嵌在文档中。

也就是说,更改图像颜色的另一种可能性是使用滤镜,因为它们可以从外部应用。如果您的图像很简单,那可能会起作用。

【讨论】:

以上是关于更改伪元素中 data-URI SVG 路径的填充颜色的主要内容,如果未能解决你的问题,请参考以下文章

PhoneGap SVG 作为 iOS 上的 data-uri

在悬停另一个元素时更改 SVG 填充颜色

使用JQuery更改svg内的填充颜色[重复]

为啥在某些 Chrome 条件下 SVG 路径元素的填充属性会填充整个边界框?

使用背景图像填充 SVG 路径元素,无需平铺或缩放

如何通过AngularJS更改特定路径ID的填充颜色SVG对象