html – 跨浏览器嵌入字体在svg图像

前端之家收集整理的这篇文章主要介绍了html – 跨浏览器嵌入字体在svg图像前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
标题不明确让我澄清一下:我有一个svg图像,其中包含一个我想用自定义字体渲染的文本.

但是,当在html页面中嵌入字体时,似乎没有弹出新的问题.另外,一些浏览器(即Firefox)看起来像在直接渲染svg时一样处理页内svg(“in img tag”).

<defs>
<style>
    @font-face {
        font-family: "Open Sans";
        src: local("Open Sans"),local("OpenSans"),url('https://example.com/OpenSans-Regular.eot') format('eot'),url('https://example.com/OpenSans-Regular.woff') format('woff'),url('https://example.com/OpenSans-Regular.ttf') format('truetype');
    }
    /* ...

据我所知,如果这是一个网页,它将成功地遍布各地.然而,作为一个svg,我不能让它工作.当前的格式在IE10(大概是较旧的版本)中几乎无处不在:字体有时会加载,其他时候它不会.字面上每秒刷新使用系统后备字体.将woff文件作为base64编码文件内联,但可以将其分解为Safari(并且更改顺序无法解决).

在svg图像中是否有跨浏览器嵌入字体的固定方式? (再次,我不是指在网页中嵌入svg字体,而是在svg图像中渲染嵌入的字体.)

解决方法

至少在Firefox中,图像必须是完全独立的,即一个文件 for privacy reasons中的所有内容.

如果要使字体正常工作,您必须对其进行base64编码并将其作为数据URL嵌入到SVG文件中,即

@font-face {
    font-family: 'Open Sans';
    src: url("data:application/x-font-ttf;base64,[base-encoded font here]");
}

猜你在找的HTML相关文章