在Firefox中使用CSS设置SVG元素宽度/高度属性

Dav*_*ner 5 css firefox svg

我正在尝试使用CSS设置SVG元素的宽度和高度属性,而不是将它们内联,但我似乎无法在Firefox中使用它.

当我在元素上设置内联宽度/高度时,它显示没有问题.

 <rect x="10px" y="50px" fill="green" width="20px" height="20px" />
Run Code Online (Sandbox Code Playgroud)

当我尝试使用CSS设置宽度/高度时,它适用于Chrome,但不适用于Firefox.

.box {
    width: 20px;
    height: 20px;
}

<rect class="box" x="50px" y="50px" fill="green" />
Run Code Online (Sandbox Code Playgroud)
  • 在firefox 43和36中尝试了同样的行为.
  • 当我在firefox中检查缺少的SVG元素时,看起来CSS正在应用,并且计算出的样式显示正确的宽度/高度值.
  • 我希望我只是做一些愚蠢的事情而Chrome只是"让它发挥作用".我想尽可能避免浏览器特定的CSS.

JSFiddle示例

Pau*_*eau 9

并非所有SVG元素属性都可以使用CSS设置样式.只有指定为"属性"的那些可以.请参阅SVG规范中的以下列表.

https://www.w3.org/TR/SVG/propidx.html

(开发中)SVG 2规范将允许使用CSS设置所有属性的样式.一些浏览器开始支持这一点.但是现在你将无法做到这一点.

更新:并非所有属性都可以在SVG2中设置样式.可定制的表示属性列表在这里.