@字体面的嵌套内@媒体不起作用在火狐3.5和IE8
题
更新:看起来像我陷入了一个相关,这不是事实上的原因的问题。问题实际上是一个无关的问题在于如何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做
叹息。
其他提示
这链接对我帮助很大:的http:// SNOOK。 CA /档案/ html_and_css /成为-A-字体嵌入主
不幸的是,我与文字从我最想尝试的字体的质量非常失望。我不能决定,如果某些字体不抗aliasable或没有,但结果并不令人满意,我仍然可以使用图片替换。