我有以下 SVG 图形:
<svg width='36' height='30'>
<defs>
<linearGradient id="normal-gradient" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:rgb(81,82,84); stop-opacity:.4"/>
<stop offset="100%" style="stop-color:rgb(81,82,84); stop-opacity:1"/>
</linearGradient>
<linearGradient id="rollover-gradient" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:rgb(0,105,23); stop-opacity:.5"/>
<stop offset="100%" style="stop-color:rgb(0,105,23); stop-opacity:1"/>
</linearGradient>
<linearGradient id="active-gradient" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:rgb(0,0,0); stop-opacity:.4"/>
<stop offset="100%" style="stop-color:rgb(0,0,0); stop-opacity:1"/>
</linearGradient>
</defs>
<text x="8" y="25" style="font-size: 29px;" font-family="Arial">hello world</text>
</svg>'
我通过 CSS 设置元素的fill
属性,text
并根据悬停状态在各种渐变之间切换。这在 Chrome 和 Safari 中效果很好,但在 Firefox 中,文本不会显示。检查该元素后,我发现 Firefox 将附加none
到我的fill: url(#...)
CSS 属性的末尾。我尝试none
使用 Firebug 删除关键字,但 Firebug 只是删除了整个属性。为什么会这样?
编辑:
我应该注意,如果我删除设置属性的 CSS,并将fill
属性硬编码fill
到text
元素中(而不是通过内联style
属性),则文本会在所有浏览器中正确显示。