为什么这个svg在不同的上下文中呈现不同?

时间:2014-02-15 19:17:04

标签: php svg

我有以下SVG:http://bensouthgate.com/i/malthus2.svg

显示b(y) = d(y)

但是,当我将其嵌入页面时:http://bensouthgate.com/p/malthus.php

它显示b(y) = f(y)等其他错误。

我在页面中包含它的方式是

<?php include '../i/malthus2.svg'; ?>

发生了什么事?

编辑:SVG在这里呈现 - &gt; http://www.tlhiv.org/ltxpreview/

2 个答案:

答案 0 :(得分:2)

您在HTML文档中直接嵌入了多个SVG,因此各种字形的ID不再是唯一的。第二个数学SVG中d字母的ID为glyph0-2,但glyph0-2已在您的第一个数字SVG中定义为f

如果要将SVG直接包含在HTML文档中,则必须确保所有ID都是绝对唯一的。

另一种方法是通过<img>标记包含SVG。

答案 1 :(得分:1)

DOM ID在文档中必须是唯一的。您的两个SVG图像都使用相同的#glyphX-Y命名模式。您需要注意的是,您获得的d错误finclude定义的ID相同。

由于您正在使用PHP {{1}}加载这些外部.svg文件,因此它们的同名ID存在冲突。 svg文件不了解彼此的存在,因为它们位于完全独立的文件中。因此,就每个单独的文件而言,它们的ID是完全可以接受的。只有当你将它们打入包含冲突的SAME文档时才会这样。