Fonts SVG字体图示符:是否见过包含的路径';s

Fonts SVG字体图示符:是否见过包含的路径';s,fonts,svg,path,glyph,Fonts,Svg,Path,Glyph,我有一个由potrace程序创建的SVG文件源,该程序为多段字符的每个组件创建了一个单独的SVG文件。如果我简单地使用这些相同的符号创建glyph定义,字符将不会显示。若我将所有路径指令插入字符的“d=”属性,则会显示该字符 SVG规范说元素是容器,并明确表示它们可以包含元素。它就是不工作(在Chrome、Opera、Safari中测试) 以下是我可以简化为的最小示例: <html> <head> <meta charset="utf-8" /> &l

我有一个由potrace程序创建的SVG文件源,该程序为多段字符的每个组件创建了一个单独的SVG文件。如果我简单地使用这些相同的符号创建glyph定义,字符将不会显示。若我将所有路径指令插入字符的“d=”属性,则会显示该字符

SVG规范说元素是容器,并明确表示它们可以包含元素。它就是不工作(在Chrome、Opera、Safari中测试)

以下是我可以简化为的最小示例:

<html>
<head>
  <meta charset="utf-8" />
  <title>SVG font test sample04</title>
  <style type="text/css">
     @font-face {
       font-family: 'sample04';
       src: url('sample04.svg#sample04') format('svg');
     }
    .sample04 { font-family: "sample04", verdana, helvetica; }
  </style>
</head>
<body class="sample04"> xE014  | &#xE014; | &#xE015; | </body>
</html>

SVG字体测试示例04
@字体{
字体系列:“sample04”;
src:url('sample04.svg#sample04')格式('svg');
}
.sample04{字体系列:“sample04”,赫尔维蒂察维尔达纳;}
xE014&xE014;|;|
sample04.svg

<?xml version="1.0" encoding="UTF-8" ?>
<svg version="1.1" xmlns = 'http://www.w3.org/2000/svg'>
  <defs>
    <font id="sample04" horiz-adv-x="800">
      <font-face font-family="sample04" />
      <glyph unicode="&#xE014;" horiz-adv-x="800" 
              d="M0,0h200v200h-200z M400,0h200v200h-200z"/>
      <glyph unicode="&#xE015;" horiz-adv-x="800">
        <path d="M0,0h200v200h-200z"/>
        <path d="M400,0h200v200h-200z"/>
      </glyph>
    </font>
  </defs>
</svg>

请注意,这两个glyph具有相同的信息,第一个glyph完全包含在d=属性中,第二个glyph将信息分为两个元素。我只尝试了一个元素,没有更好的结果

那么,这仅仅是另一种情况吗?规格很炫目,而浏览器却达不到这一要求


注意:我之所以如此关心,是因为我有将近5000个SVG文件要嵌入到字体中,而且我真的不想太多地使用XML转换来转换源代码……

是对某些浏览器支持的内容(Opera、Chrome/Safari)的一个相当准确的描述。tl/dr:现在的浏览器只支持中的'd'属性,不支持任意的子元素。谢谢。指出SVG Tiny作为浏览器实现的悲观指南是最好的建议。当然,这有助于理解“笔划不起作用”的各种旁白,因为SVG Tiny中甚至没有提到style=。