我有这张SVG图片:
ICC 15.0
我使用inkscape在linux上编辑。它使用了Windows上没有的字体“sans”。我想指定一个包含所有主要操作系统上可用字体的font-family,但是我使用它的任何语法都不起作用。到目前为止我试过了:
这是什么工作的正确语法?我在IE和Firefox中渲染图片,两者似乎都有同样的问题。
这是图片的完整源代码:https://tools.wmflabs.org/paste/view/raw/c47ec7b8
答案 0 :(得分:7)
要更改svg中的字体系列,您应该首先在svg中的defs中导入字体,如下所示:
<defs>
<style type="text/css">@import url('https://fonts.googleapis.com/css?family=Lato|Open+Sans|Oswald|Raleway|Roboto|Indie+Flower|Gamja+Flower');</style>
</defs>
然后,您可以使用嵌入式样式或javascript更改字体系列
<text xmlns="http://www.w3.org/2000/svg" style="direction:rtl ;font-family:Gamja Flower" id="nametxt" class="text" transform="matrix(1 0 0 1 390 88.44)">text</text>
,对于javascript:
svgTextNode.style.fontFamily=FontFamily
答案 1 :(得分:3)
似乎问题是我用引号括起来了。正确的语法(或者至少对我有用):
font-family:Sans,Arial;
(没有引号)
答案 2 :(得分:1)
如果需要声明全局样式,可以使用以下语法:
<svg width="100" height="100"
xmlns="http://www.w3.org/2000/svg">
<style>
text {
font-family:Roboto-Regular,Roboto;
}
</style>
...
</svg>
答案 3 :(得分:0)
就我而言,我正在将SVG转换为base64。
使用font-family =“ Arial,无衬线;”没有工作,但是当我删除“;”时最后一部分是分号,瞧!它起作用了。