我正在为现代浏览器开发一个JavaScript应用程序,我不需要支持旧的浏览器。我想把字体嵌入到我的CSS文件中,而不是加载它们。
现在,当我使用Font Squirrel的@font-face生成器时,使用“base64 encode”--它只为我提供WOFF类型的数据URI,而不是TTF类型的数据URI。
它为什么要这么做?
我相信原因是为了最小化总体文件大小/加载时间。
有些设备有25KB的限制,以便维护“缓存”的文件。当TTF和WOOF是基于64时,CSS文件可能会超过限制,并导致每次访问重新加载。
浏览器将使用第一个字体“It Can”(或“Cascade”,如果你愿意的话)。您将看到由于特定原因按以下顺序列出的格式:
1.EOT-用于捕获较旧的IE(<9)。
IE将被多个“src”阻塞。您经常会看到EOT引用中涉及的?#IEFIX,或者一个附加的选择器,其中只有EOT文件,后面跟着一个类似的选择器,带有he WOFF和ttf。另外,由于旧的IE不做datauri,我们必须作为外部文件离开。
2.WOFF--大多数现代浏览器。
大多数现代浏览器都会使用WOFF。这种格式非常小,即使使用base64编码也是如此。因此,将其保存在CSS中是有意义的。另外,WOFF可能无法通过FTP正确上传,和/或服务器可能没有为WOFF扩展设置正确的MIME。
需要TTF的旧浏览器是:-旧的Safari(5.0)-旧的IOS(<4.2)-旧的Opera(10.0)同样,将TTF包含为“heavy”base64,对于某些设备来说,CSS文件可能太大而无法缓存。将TTF作为二进制文件和外部文件保存是明智的,因为只有在需要时才会加载/使用它。
下面是基于caniuse.com数据的简单图表:
---------------
EOT
---------------
IE >= 6
FF -
Chrome -
Safari -
Opera -
O mini -
O Mobi -
IOS -
Android -
---------------
WOFF
---------------
IE >= 9
FF >= 3.6
Chrome >= 16
Safari >= 5.1
Opera >= 11.6
O mini -
O Mobi >= 11.0
IOS >= 5
Android -
---------------
TTF
---------------
IE -
FF >= 3.6
Chrome >= 16.0
Safari >= 5.0
Opera >= 11.6
O mini -
O Mobi >= 10.0
IOS >= 4.2
Android >= 2.2
多年以来,人们一直被迫使用一组单调乏味的Web安全字体。当网页中需要使用一些优雅的字体时,设计师最常用的办法,就是把文字做成图片。但是,由于图片难以修改,也不利于网站SEO,因此不可能大范围使用该字体。 值得庆幸的是,CSS3的 @font-face 为设计师打开了一个全新的世界,它提供了一种自定义网页字体的方法,使设计师可以大胆使用任意自己想要的字体。 事实上,@font-face规则在CSS2
问题内容: 我必须在项目中使用精美的字体,但我真的想避免使用sifr和其他丑陋的替代方法,因此我正在使用@ font-face。 但是,我确实对几个博客/站点感到困惑,这些博客/站点对其可用性提供了不同的观点。准备好了吗?今天哪些浏览器支持它? 谢谢 问题答案: 现在几乎所有浏览器都实现了它。唯一真正的问题是Internet Explorer需要使用其自己的OTF格式的字体文件,并且不会理解TTF
问题内容: 是否可以在页面加载之前预加载或以其他方式缓存@ font-face字体(最有可能使用javascript),以便在页面最终加载时不会出现难看的跳转? 问题答案: 我目前尚无任何避免字体加载时出现闪烁的技术,但是您可以通过为字体发送适当的缓存头并确保该请求尽快通过来最大程度地减少闪烁。
@font-face跟其在CSS中作用表现一样,在后面简单地添加个块状属性即可,类似下面: @font-face font-family Geo font-style normal src url(fonts/geo_sans_light/GensansLight.ttf) .ingeo font-family Geo 生成为: @font-face { font-famil
问题内容: 我正在尝试使用CSS文件加载字体,但是字体从未加载。这是我的目录结构。 然后在我有加载程序来获取字体。 在我的CSS文件中,我有以下内容: 最后,我使用以下命令调用我的CSS文件: 一切正常,但字体永远不会加载。 问题答案: 在尝试了很多东西之后,下一个装载机完成了工作。我使用url-loader代替了文件加载器。您需要安装url-loader。
问题内容: 我是第一次使用,并从fontsquirrel下载了一个字体工具包 他们建议插入我的CSS中的代码是: 现在,笑脸让我难过。但是src中的url数量也是如此- 为什么它们建议这么多文件,并且在呈现页面时会将它们全部发送到浏览器?删除除.ttf以外的所有内容是否有害? 问题答案: 如果您在font-squirrel的font-face生成器中阅读了注释,您会发现这是paul irish的陷