我使用 <object>
标签在我的页面中嵌入 SVG,它们应该使用 Google 字体(例如 Roboto )。但是,SVG 不会选择这些字体,而是默认为系统字体。
我究竟做错了什么?每个 SVG 都要求字体本身嵌入 <style>
吗?
示例代码:
<head>
<link href='https://fonts.googleapis.com/css?family=Roboto:400,100,100italic,300,300italic,400italic,500,500italic,700,700italic,900,900italic' rel='stylesheet' type='text/css'>
</head>
<body>
<object width="250" height="200" type="image/svg+xml" data="img/popup_image.svg"></object>
</body>
SVG片段:
<text font-size="14" fill="#333" font-family="Roboto">Words go here</text>
原文由 daveycroqet 发布,翻译遵循 CC BY-SA 4.0 许可协议
浏览器将 SVG 文本视为常规 HTML 文本。换句话说,SVG 中的任何文本元素都必须像普通 HTML 元素一样设置样式(例如
<span>
)。您需要以 CSS@import
的形式将字体嵌入到 SVG 中。查看 SVG 的 XML 中的<defs>
部分。然后,将此代码添加到其中:接下来,更新您的
<text>
元素,如下所示:如果您想了解更多相关信息,可以试试这个网站:http: //nimbupani.com/about-fonts-in-svg.html 。它有一些关于嵌入式 SVG 字体的非常好的信息。可以在此处找到一个工作示例: https ://github.com/marians/test-webfonts-in-svg。