如何使用 SMIL 更改 SVG 的背景颜色

How to change background color of SVG with SMIL

如果没有 javascript 或另一个 CSS,是否可以更改 SVG 的背景颜色(属性样式)?

以下无效:

<svg  xmlns="http://www.w3.org/2000/svg" 
 style="stroke:black;fill:black;font-size:18;background-color:orange"
 width="500"
 height="250"
 viewBox="0 0 500 250"
 version="1.0" >
  <set attributeName="style" attributeType="XML" begin="1s" dur="3s" to="background-color:crimson"/>
</svg>

background-color 不是 SVG 规范的一部分。要填充 SVG,将使用给定的填充颜色在背景中创建 rect(参见 this question)。然后你可以使用set来改变rect元素的填充。

<svg xmlns="http://www.w3.org/2000/svg" style="stroke:black;font-size:18" width="500" height="250" viewBox="0 0 500 250"version="1.0">
  <rect width="100%" height="100%" fill="orange">
    <set attributeName="fill" attributeType="XML" begin="1s" dur="3s" to="crimson"/>
  </rect>
</svg>