发布于 2018-06-04 05:59:51
问题是,当<svg>
嵌入到HTML中时,它作为一个SVG元素和一个HTML元素都具有双重功能。
为了保持一致性,一些HTML特性与最外层的<svg>
元素一起工作,但它们不适用于内部/嵌套的SVG元素。记住,SVG是与HTML不同的标准。它有着不同的用途,而且并不是所有HTML特性都可以使用SVG元素。尽管如此,在有意义的地方,某些HTML特性是支持的,或者很快就会得到支持。
一个早期的添加是使background
/background-color
与最外层的<svg>
元素一起工作。AFAIK所有浏览器现在都支持这一点。
这同样适用于transform
。当前的SVG规范(1.1)不允许在transform
元素上使用<svg>
,但是为了与其他<svg>
元素保持一致,浏览器支持最外层的<svg>
元素。在即将推出的SVG 2标准中,内部transform
元素也将被允许使用<svg>
。事实上,Firefox已经实现了这一点。我相信这是目前唯一的浏览器。
如果您想要一种在任何地方都有效的方法,那么下面的方法通常是可行的。
<svg ...>
<rect width="100%" height="100%" fill="#00f"/>
...
</svg>
https://stackoverflow.com/questions/50676245
复制相似问题