我正在为公共 wifi 接入点设计一个启动页面,而 Firefox 拒绝显示我的自定义字体,而它在所有其他浏览器中都可以使用(嗯,不是 IE < 9,但这是意料之中的)。
该页面需要在以下约束中工作:
- 无法访问互联网:在用户接受条款和条件之前显示此页面,因此所有内容都被阻止
- 该页面存储在访问点上:这意味着嵌入式服务器可能是用 C 编写的,我不能真正添加额外的标题或其他东西。好吧,它是开源的,所以它可能是可能的,但我肯定不是嵌入式开发人员!
- WiFi 用于宣传提供它的小镇,所以它应该尽可能漂亮。
为了满足这些约束,我使用了带有数据 uri 的 @font-face,如下所示:
@font-face {
font-family: Lato-Light;
src: url(data:application/font-woff;base64,<large base64 string>)
format('woff');
}
h1{
font-family: Lato-Light, Helvetica, sans-serif;
}
它就像一个魅力......除了在 Firefox 中。现在我知道它不适用于旧版 IE,但我已经准备好使用它。但我觉得奇怪的是,所谓的现代浏览器不提供该功能。为什么这不起作用?
编辑:当然,我对后备有很多想法,但我的问题更多:为什么 Firefox 的这种行为与其他浏览器不同?是安全设置吗?data-uri 实现中的错误?数据uri的大小限制?