可以在通过CSS数据URI呈现的SVG上使用CSS选择器吗?

可以在通过CSS数据URI呈现的SVG上使用CSS选择器吗?,css,svg,css-selectors,data-uri,Css,Svg,Css Selectors,Data Uri,我有一些带有类名的内联SVG,用于通过CSS选择器进行样式设置。我想将SVG作为背景图像数据URI引入CSS,但这是否意味着我不能再使用CSS选择器了 我已经阅读了现有的StackOverflow回复,其中的要点似乎是“你不能应用CSS,因为它是来自另一个站点的图像或资源” 但是这些问题在几年前就已经被提出和回答了,所以我希望现在有一个解决办法 最后,有一些解决方案,您可以使用SVG掩蔽,并通过设置元素的背景色将单一颜色应用于SVG的各个部分。这对于我的情况是不够的,因为我想使用2到4种颜色

我有一些带有类名的内联SVG,用于通过CSS选择器进行样式设置。我想将SVG作为背景图像数据URI引入CSS,但这是否意味着我不能再使用CSS选择器了

我已经阅读了现有的StackOverflow回复,其中的要点似乎是“你不能应用CSS,因为它是来自另一个站点的图像或资源”

但是这些问题在几年前就已经被提出和回答了,所以我希望现在有一个解决办法

最后,有一些解决方案,您可以使用SVG掩蔽,并通过设置元素的背景色将单一颜色应用于SVG的各个部分。这对于我的情况是不够的,因为我想使用2到4种颜色

以下是我的图像的SVG和数据URI版本:

.primary{
填充:rgb(87143213);
中风:rgb(87143213);
}
.中学{
填充:rgb(176202234);
}
.secondaryShadeTint{
填充:紫色;
}
你有邮件吗{
填充物:红色;
}
svg,div#dataURI{
宽度:100px;
高度:100px;
}
div#dataURI{
背景尺寸:100px,100px;
背景重复:无重复;
背景图片:url("数据:image/svg+xml、%3Csvg viewBox='0 500'width='500'height='500'xmlns='http%3A//www.w3.org/2000/svg'xmlns:link='http%3A//www.w3.org/1999/xlink'%3E%3defs%3E%3Cmask id='0'width='500'maskUnits='userSpaceOnUse'%3E%3E%3C矩形x='0'y='0'width='500'高度='500'填充='500'白色3E%3C/3C多边形''%3E'ints='80%2C170 250%2C330 420%2C170'填充='黑色'%3E%3C/多边形%3E%3C/遮罩%3E%3C/defs%3E%3Cpolygon class='primary'点='80%2C140 250%2C300 420%2C140'%3E%3C/多边形%3E%3Cpolygon class='secondary'点='80%2C420%2C230%2C420'遮罩='url%28%23\U-mail\U信封遮罩%29'%3E%3C/多边形%3E%3Cpolygon class='secondary'点='secondary'点='70%2C160%2C400%2C270“%3E%3C/多边形%3E%3Cpolygon class='secondary'points='430%2C160 430%2C400 315%2C270“%3E%3C/多边形%3E%3Ccircle class='youHaveMail'cx='375'cy='160'r='100“%3E%3C/圆%3E%3C/svg%3E”)
}
SVG
数据URI

宿主文档中的选择器无法查询作为外部资源嵌入的SVG文档,而不是与宿主文档标记内联的SVG文档。

我可以理解不允许将CSS应用于iFrame或嵌入元素的安全含义。但由于Javascript允许为cont声明特定的异常来自同一个域的ent,并且鉴于SVG通过数据URI显然不是跨域的,是否有任何方法可以绕过此限制?是否有任何浏览器或标准委员会考虑过这种情况的例外情况?