更新:看起来像我陷入了一个相关,这不是事实上的原因的问题。问题实际上是一个无关的问题在于如何CSS文件的部署方式。看到我的回答下面的详细信息。

我有@字体面工作以及在其(野生动物园和铬)和歌剧院,但不是在火狐3.5或即8.

每项建议的谷歌和其他人,我所服务的所有静态的资产,包括CSS,从一个单独域从我的主要网站。 如果我为一切都来自同一领域,它的工作现在所有的浏览器 (注:这意味着,答复关于CSS语法都是无用的。我已经有所有的推测和伟大的工作。这仅仅是有关的跨领域问题)。

如果我服务CSS和字体文件从我的静态资源的领域,并有静态的资产设置适当的服务器 访问控制头 (访问控制能源), 应该 的工作,它的工作无处不在,除了FF3.5和IE。

什么我需要做到使这项工作?

有帮助吗?

解决方案

最好的答案到目前为止,我已经发现,在希望它可以帮助别人:

<德尔>据我所知,问题的关键是CSS文件(未在字体文件)是否被加载跨域。如果我从我的静态资产域加载与@字体面声明的CSS文件,我什么都不做将会使字体在FF或IE浏览器,无论是访问控制头。如果我来自同一个域加载CSS文件的页面,或者我只是提出我的@字体面声明到在页面头部的样式块,然后它在所有浏览器(我甚至可以加载字体文件跨域只要我有访问控制报头组)。

<德尔>总结:AFAICT,FF 3.5和IE 8将拒绝兑付@字体面声明在交叉域加载CSS文件,无论是什么

我喜欢这个予以纠正,如果有人知道更好,可以指出,还有什么我可能是做错了。

事实上,我错了。事实证明,我们使用的是部署资产从专用域名服务被包裹CSS的整个块与“@media屏幕{...}”的CSS-压缩机。我仔细对比的@ font-face规则,以确保压缩机没惹他们,但从来没有检查一开始就和CSS文件的末尾赶上那包裹。当我切换到服务相同结构域,其包裹并没有发生。

事实证明,IE和Firefox不遵守@字体面声明包裹在里面@media:野生动物园,铬和Opera做

叹息。

其他提示

我会建议在看 这IEBlog后, ,其中描述了如何,你做的字体嵌入在即。不,这不符合CSS3的方式,不,你没有任何其他方式做到这一点在即使用@字体的脸。

这可能是值得注意的是Microsoft提交的EOT的方法来W3C的举动得到它的标准化,并W3C有 表示有兴趣 在这一过程的行动。

这链接对我帮助很大:的http:// SNOOK。 CA /档案/ html_and_css /成为-A-字体嵌入主

不幸的是,我与文字从我最想尝试的字体的质量非常失望。我不能决定,如果某些字体不抗aliasable或没有,但结果并不令人满意,我仍然可以使用图片替换。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top