现代浏览器,Android和IOS需要哪些字体文件?

Sam*_*tar 13 html css fonts 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;
}
Run Code Online (Sandbox Code Playgroud)

这些只是满足我的需求:

@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;
}
Run Code Online (Sandbox Code Playgroud)

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

Mik*_*ans 29

正如在这篇SO帖子中所解释的那样,你只需要WOFF.这就是为什么:

  • eot已经被弃用了一段时间,但实际上已经过时了,微软只支持Edge,加上"支持Windows版本的IE的最新版本",此时只有IE11(11月201日).这两个都支持WOFF就好了.另请注意,早于Windows 7的所有内容都已不再受支持(在此答案时,Windows Vista SP2仍受公司企业许可证支持,但此后也已达到使用寿命).
  • svg 多年前被遗弃了.这是一个有趣的想法,但在实践中结果很糟糕,因为它与真实字体相比是荒谬的,并且缺乏对于体面排版至关重要的功能.整个<font>章节已从SVG2中删除,几乎所有在过去的某个时刻都支持它的浏览器都已经删除了那个支持(这有多糟糕).仍然支持svg字体的唯一两个浏览器支持WOFF,因此没有理由同时提供这两种浏览器.
  • ttf并且otfOpenType字体(两者都有.由于历史原因,它们的扩展名不同,但除非你制作字体,否则它们之间的差异基本上是不相关的),这些字体用于通用系统.就像在计算机上安装或发送到现代打印机以生成物理文档一样.因此.他们有很多需要支持的位和bob(规格相当大),如果你只是将网页渲染到屏幕上,其中许多实际上并不重要.WOFF允许您在OpenType字体中进行一些简化,并且支持通用Opentype的每个浏览器支持WOFF.再说一次:只使用WOFF.

要实现的是WOFF是围绕OpenType字体的逐字节包装,但是(可选)无损压缩使得字体更小,使得从服务器传输到客户端更快,并指示字体是为网络,这意味着一些的字体绝对需要满足到通用类型系统算作法律字体的要求宽松,所以更多的数据可以被剃掉上使用.

我知道Font Squirrel和其他网站仍然会产生"有各种格式!" 一种CSS字体包,但它是2017年,我们根本不再需要这些庞大的设置.虽然即使短至三年前这些集合也是最佳实践(在浏览器环境中使用"防弹"方法,当涉及到webfonts时,这种方法非常分散),但今天这些包完全没必要.一切都支持WOFF.

"WOFF2怎么样?"

WOFF2WOFF规范的修订版,为您在网上提供的二进制数据类型提供了更新,更好的无损加密算法(WOFF2使用brotli,而不是WOFF的"deflate"),因此如果您的目标支持的浏览器它:很棒.但请先查看http://caniuse.com ; 有很多浏览器还没有支持它,特别是在流行的平台上(Windows的IE和Apple的Safari现在不支持WOFF2.最终IE会,但Safari ...谁知道)

"当我要求WOFF2时,谷歌字体会做什么子集化的事情呢?"

实际上,WOFF2还允许通过指定字符子集加载应该如何工作来加载块中的"一种字体",这样您就只能加载所需的字体以支持用户的语言环境.但是,除非您运行一个需要在几个不同的本地化版本中提供的网站,以他们的母语定位这个星球上的特定市场,或者您正在运行一个教授不同语言的网站,所有这些都需要使用相同的方式设置字体系列(这是极不可能的)这与你几乎无关.

  • FWIW,我认为微软提供的支持程度不一定与Web开发人员支持的程度相同.Web开发人员的目标是访问他的网站的人,如果您要在IE11之前删除对所有内容的支持,您应该确保这些浏览器对您的用例不重要. (4认同)
  • 你将不得不用大量证据支持这种说法,因为这确实是我的工作,我知道很多人不再需要担心过时/不支持的浏览器(最后.这需要很长时间,但我们得到了那里) (4认同)
  • 欢迎您记住这一点,但请紧记目标:问题是“现代浏览器,Android和IOS我需要哪种字体文件?”,所以让我们如实回答。像IE8这样的东西在Windows XP上已经停产了,并且已经多年不被支持了,它并不是“现代的浏览器”。是的,有些Web开发人员*有*支持(或至少得到报酬),但是这些工作与正确回答此问题无关。 (2认同)
  • 这个答案太棒了,感谢您提供如此详细的信息! (2认同)