如果像引用
object标签一样通过引用外部文件来包含svg图像,则svg图像中的元素将不包含在主文档DOM树中。他们组成了自己的树。因此,外部图像中的元素无法通过主文档中的CSS选择器进行匹配。
您可以
object像大多数其他元素一样设置元素的样式,例如为其设置边框。但是您不能(至少这样)访问外部图像中的元素。在你的情况,你尝试风格
#ob的
color。这将适用于
objects的文本颜色,而不适用于引用的svg图像内的任何颜色。在不支持svg的浏览器上,“您的浏览器不支持SVG”通知可能会显示为蓝色。
您的CSS选择器的情况与此
svg类似:主文档中的CSS选择器仅与主文档中的元素匹配,没有
svg找到,只是一个
object。
有一些方法可以将CSS样式应用于svg元素。通常,此想法是通过从外部文件到主文档的svg元素或从主文档到外部文件的CSS,将CSS和svg元素置于同一DOM树中:
- 将您的
svg
元素及其子元素直接嵌入主文档中,而不是引用外部文件。在这种情况下,svg
元素及其子元素将成为man文档的DOM树的一部分,因此主文档的CSS可以访问它们。 - 将
svg
元素嵌入到主文档中,并使用xlinkuse
引用外部svg图像(而是其中的一部分)。 - 如果您无法将外部svg图像中的元素获取到主文档的DOM树中,因此主文档CSS选择器可以与之匹配,则可以尝试另一种方法:将CSS添加到svg文件中。与将CSS包含到html文档中的方式类似,您可以使用内联
style
属性,使用style
html中的元素head
或使用引用外部CSS文件<?xml-stylesheet ... ?>
。



