我有以下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/
答案 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
错误f
与include
定义的ID相同。
由于您正在使用PHP {{1}}加载这些外部.svg文件,因此它们的同名ID存在冲突。 svg文件不了解彼此的存在,因为它们位于完全独立的文件中。因此,就每个单独的文件而言,它们的ID是完全可以接受的。只有当你将它们打入包含冲突的SAME文档时才会这样。