0

这是我第一次看到自定义字体嵌入会发生这种情况。作为参考,我有几十个使用自定义字体的客户端站点没有问题。

这个特定的客户端有他们自己创建的自定义字体文件。不幸的是,有问题的应用程序存在于主站点的 iframe 中(域/子域匹配,但在主页、iframe 和字体文件之间)。

当页面第一次加载时,字体显示得很漂亮。我一刷新页面,字体就被破坏了:它恢复为备用 ( "Sans-Serif") 字体,并且字母间距都被抬高了。

使用了 3 个单独的字体文件,它们都显示相同的行为。我相信这是一个缓存问题。最初正确显示的字体表明文件没问题,引用路径正确,域安全不存在问题。

我们使用 font-squirrel 生成的 css 进行嵌入。到目前为止,我只在 IE8 上进行了测试,尽管有人告诉我 IE9 也有同样的问题。其他浏览器似乎没有任何字体问题。

不幸的是,我无法分享这是用于哪个网站。

@font-face {
    font-family: 'myfont70';
    src: url('../font/myfont-070.eot');
    src: url('../font/myfont-070.svg#myfont70') format('svg'),
    url('../font/myfont-070.eot?#iefix') format('embedded-opentype'),
    url('../font/myfont-070.woff') format('woff'),
    url('../font/myfont-070.ttf') format('truetype'),
    url('../font/myfont-070.svg#myfont70') format('svg');
    font-weight: normal;
    font-style: normal;
}

(SVG 的双重声明是有意的)

谢谢!

4

1 回答 1

0

这特别是由于被保存在 IE 中的 iframe 中造成的。解决方案是刷新声明字体系列的css标签上的href。这并不理想,因为它会触发 css 的重新加载,并且字体会瞬间闪现到它们的后备状态。

如果有人有更好的解决方案,我全是眼睛。

于 2013-05-09T11:37:49.443 回答