Android和IOS需要什么样的字体文件?

我有这些作为我的字体文件:

@font-face { font-family: 'FontAwesome'; src: url('@{fa-font-path}/fontawesome-webfont.eot') format('embedded-opentype'), url('@{fa-font-path}/fontawesome-webfont.woff2') format('woff2'), url('@{fa-font-path}/fontawesome-webfont.woff') format('woff'), url('@{fa-font-path}/fontawesome-webfont.ttf') format('truetype'), url('@{fa-font-path}/fontawesome-webfont.svg fontawesomeregular') format('svg'); // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts font-weight: normal; font-style: normal; } 

只是这些满足我的需求:

 @font-face { font-family: 'FontAwesome'; src: url('@{fa-font-path}/fontawesome-webfont.eot'); src: url('@{fa-font-path}/fontawesome-webfont.woff2') format('woff2'), url('@{fa-font-path}/fontawesome-webfont.woff') format('woff'), url('@{fa-font-path}/fontawesome-webfont.ttf') format('truetype'); font-weight: normal; font-style: normal; } 

woff和woff2能满足我的需求吗?

你只需要WOFF 。 这是为什么:

  • eot被弃用了一段时间,但现在实际上已经过时了, 微软只支持“最新版本的IE支持Windows版本” ,所以这意味着IE11和EDGE。 这些支持WOFF就好了。 并注意,比Windows 7更早的东西已经不在支持范围之内了(在此答案时,Windows Vista SP2仍然受到企业企业许可证的支持,但此后也达到了使用寿命)。
  • svg 多年前就被放弃了 。 这是一个有趣的想法,但在实践中performance糟糕,因为与真正的字体相比,它是非常大的,并且缺乏对体面排版至关重要的特征。 几乎所有在过去的某个时候都支持它的浏览器已经取消了这种支持(这是多么的糟糕)。 只有两个仍然支持svg字体的浏览器支持WOFF,所以没有理由同时使用这两种。
  • ttfotf是OpenType字体 (两者都是不同的,因为历史的原因,除非你制作字体,它们之间的差异本质上是不相关的),这些都是为了通用系统的使用。 就像在计算机上安装或发送到现代打印机以生成物理文档一样。 因此。 他们需要支持很多bit和bobs(规范相当大),其中许多实际上并不重要,如果只是将网页渲染到屏幕上。 WOFF可以让您在OpenType字体中简化一些操作,并且支持通用Opentype的每个浏览器支持WOFF。 所以再次使用WOFF。

要实现的事情是WOFF是围绕OpenType字体的一个逐字节的包装,但是(可选的)无损压缩使得字体更小,使得从服务器传输到客户端更快,并且指示字体只是在网上使用,这意味着一个字体绝对需要满足的一些要求在通用types系统上合法字体被放宽,所以可以削减更多的数据。

我知道字体松鼠和其他网站仍然产生“拥有每一个存在的格式! types的CSS字体包,但它是2017年,我们根本不需要这些庞大的集合了。 尽pipe就在三年前,这些设置仍然是最佳实践(在Web浏览器中对浏览器环境使用“防弹”方法来处理CSS),但现在这些设置完全没有必要。 一切都支持WOFF。

“WOFF2呢?”

WOFF2是WOFF规范的一个修订版本,对于您在networking上find的二进制数据(WOFF2使用brotli而不是WOFF的“deflate”),使用更新的,更好的无损encryptionalgorithm,所以如果您的浏览器支持它:很好。 但请先查看http://caniuse.com 。 有很多浏览器不支持它,特别是在stream行的平台上(Windows的IE和苹果的Safari现在不支持WOFF2,IE最终会,但Safari …谁知道)

“当我要求WOFF2的时候,谷歌字体的子集function呢?

的确,WOFF2还允许通过指定字符子集加载应该如何工作来加载“一种字体”,以便只能加载尽可能多的字体,以支持用户的语言环境。 然而,除非你运行一个网站,需要在几个不同的本地化版本中可用,以本国语言为目标在这个星球上的特定市场,或者你正在运行一个网站,教导不同的语言,所有这些都需要使用相同的样式字体家族(这是不太可能的),这是非常不相关的你。