【发布时间】:2015-11-19 14:16:29
【问题描述】:
我有一个在 SVG 中构建的 javascript 应用程序(类似 CAD),其中包含 tools(使用 Inkscape 在 SVG 中构建的对象),并插入了 use 标记。在 Chrome 和 Safari 上一切正常(从未在 IE 中测试过),但在 Firefox 中,fill 带有渐变的所有对象都没有呈现。如下图:
火狐
铬
tools 是这样加载的(使用外部文件)
<use
id="SvgjsUse1448"
xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:href="assets/images/neomap/tools/armchair.svg#armchair">
</use>
渐变在html 页面内的单独svg 中定义
...
<linearGradient xmlns="http://www.w3.org/2000/svg" id="armchair_SVGID_1_" y2="1911.6" gradientUnits="userSpaceOnUse" x2="1201.2" gradientTransform="matrix(1.0799475,0,0,1.2039969,15.269894,2.997636)" y1="467.91" x1="1201.7">
并像这样申请
<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" height="100%" width="100%" version="1.1" >
<defs>
<symbol id="armchair" viewBox="0 0 72000 54000">
<path style="stroke:#000000;stroke-width:6.84171867;stroke-miterlimit:10;fill:url(#armchair_SVGID_1_);" d="m2234.8,743.7s168.9,1406.4,0,1487.4c-188.77,90.42-1655.6,92.708-1844.3-0.4817-168.8-83.316,0-1488.9,0-1488.9v-182.09h1841l3.2398,184.09z"/>
...
</symbol>
</defs>
</svg>
这是 Firefox 的错误?我该如何解决?
【问题讨论】:
-
符号中是否定义了渐变?如果是这样,请不要。
-
@RobertLongson,我用你的疑问更新了这个问题,我尝试使用
symbol,g,甚至整个svg,都在其他浏览器上工作,除了Firefox。