我在 HTML 页面中有一个 SVG。像 IE 8 这样的旧浏览器不支持 SVG,因此我加载了 Google 的SVG Web库以作为 Flash 后备。如果浏览器是旧版浏览器,SVG Web 会将 SVG 转换为幻像对象并在 SWF 中复制其功能。
如果 SVG 有一个带有 font-family 属性的文本元素,则此方法有效,但在 IE 8 中除外。IE 8 忽略 SWF 中的字体系列。
我在样式表中加载@font-face:
@font-face {
font-family: 'MyriadPro-BoldIt';
src: url('myriadpro-boldit-webfont.eot');
src: url('myriadpro-boldit-webfont.woff') format('woff'),
url('myriadpro-boldit-webfont.ttf') format('truetype'),
url('myriadpro-boldit-webfont.svg#webfontyYDLSfQE') format('svg');
font-weight: normal;
font-style: normal;
}
并将该字体系列应用于 SVG 中的文本元素:
<script type="image/svg+xml">
<svg xmlns="http://www.w3.org/2000/svg" width="720" height="120" version="1.1">
<text x="190" y="80" id="font-test" font-size="44.06" fill="#94dfe3"
font-family="MyriadPro-BoldIt">MyriadPro-BoldIt</text>
</svg>
</script>
无论我使用什么客户端查看页面,文本看起来都很棒。IE 8 除外,它以默认的 IE 8 字体呈现。
当我指示 SVG Web在现代浏览器上强制使用 Flash时,文本看起来也很完美。
建议?