Web 字体简介: TTF, OTF, WOFF, EOT & SVG

字体格式有太多选择,不幸的是始终没有一个能在所有的浏览器上通用。这意味着,你必须使用多种字体的方案来保持用户跨平台的一致性体验。本文内容如题,会依次介绍一下 TTF、OTF、WOFF、EOT 和 SVG 几种字体目前在 Web 上的情况。

浏览器支持情况

现在,让我们复习一些基础知识,简单看看现代 Web 上使用的不同字体格式。

TTF

TTF (TrueType Font) 字体格式是由苹果和微软为 PostScript 而开发的字体格式。在 Mac 和 Windows 操作系统上,TTF 一直是最常见的格式,所有主流浏览器都支持它。然而,IE8 不支持 TTF;且 IE9 上只有被设置成 "installable" 才能支持(译注:别想了,转别的格式吧)。

TTF 允许嵌入最基本的数字版权管理标志————内置标志可以告诉我们字体作者是否允许改字体在 PDF 或者网站等处使用,所以可能会有版权问题。另一个缺点是,TTF 和 OTF 字体是没压缩的,因此他们文件更大。

OTF

OTF (OpenType Font) 由 TTF 演化而来,是 Adobe 和微软共同努力的结果。OTF 字体包含一部分屏幕和打印机字体数据。OTF 有几个独家功能,包括支持多平台和扩展字符集。OTF 字体可以在 Macintosh 和 Windows 系统上使用。

OTF 也允许多达 65000 个字符的存储。这个额外的空间让设计师可以自由地添加附加元素,比如小帽子、老式数字体、代替的字符和其他一些以前必须作为独立字体分发的附加材料。

(译注:苹果当年为了对抗 Adobe 在 PostScript 的 Type 1 字体拉上了微软一起撸了 TTF,结果后来微软又反水跟 Adobe 搞一套 OTF,还让 IE 后面的版本取消 TTF 支持,IT圈子还真是乱。。)

EOT

EOT (Embedded Open Type) 字体是微软设计用来在 Web 上使用的字体。是一个在网页上试图绕过 TTF 和 OTF 版权的方案。你可以使用微软的工具从现有的 TTF/OTF 字体转成 EOT 字体使用,其中对字体进行压缩和裁剪使得文件体积更小。同时为了避免一些收版权保护的字体被随意复制,EOT 还集成了一些特性来阻止复制行为,以及对字体文件进行加密保护。听起来很有前途?嗯哼,可惜 EOT 格式只有 IE 支持。

(译注:微软曾经弄死网景的恶意竞争引起了公愤,在 IE 上推行孤立主义的微软遭到整个行业的唾弃)

WOFF

WOFF (Web Open Font Format) 本质上是 metadata + 基于 SFNT 的字体(如 TTF、OTF 或其他开放字体格式)。该格式完全是为了 Web 而创建,由 Mozilla 基金会、微软和 Opera 软件公司合作推出。 WOFF 字体均经过 WOFF 的编码工具压缩,文件大小一般比 TTF 小 40%,加载速度更快,可以更好的嵌入网页中。metadata 允许在字体文件中包含许可数据,以解决版权问题。这是万维网联盟提(qing)倡(ding)的,所以毫无疑问的是字体格式的未来。目前主流的浏览器的新版本几乎都支持 WOFF。

WOFF2 是 WOFF 的下一代。 WOFF2 格式在原有的基础上提升了 30% 的压缩率。由于它还没有 WOFF 的广泛支持,所以还只是一个可展望的升级。

SVG

SVG (Scalable Vector Graphics font) 字体格式使用 SVG 的字体元素定义。这些字体包含作为标准 SVG 元素和属性的字形轮廓,就像它们是 SVG 映像中的单个矢量对象一样。SVG 字体最大的缺点是缺少字体提示(font-hinting)。字体提示是渲染小字体时为了质量和清晰度额外嵌入的信息。同时,SVG 对文本(body text)支持并不是特别好。因为 SVG 的文本选择(text selection)目前在 Safari、Safari Mobile 和 Chrome 的一些版本上完全崩坏,所以你不能选择单个字符、单词或任何自定义选项,你只能选择整行或段落文本。

然而,如果你的目标是 iPhone 和 iPad 用户,需要说 SVG 字体是 iOS 上 Safari 4.1 以下唯一允许的字体格式。

明智的选择 ⁼̴̀ .̫ ⁼̴́ )✧

正如你所看到的,有许多因素可能会影响 Web 字体的呈现。为了提供质量和一致性,对所有可能的 OS 和浏览器组合进行彻底测试是至关重要的。

译者能想到的无非是造一些 xx2woff(主流兼容)、xx2eot(兼容 IE)、xx2svg (向下兼容 Safari)之类的轮子然后在 webpack 中配置(在 npm 上看了下确实有已经有不少的轮子了, 2333),不过貌似还没看到最佳实践(有轮子心的同学们,机会来了!),有知道的同学欢迎在评论中补充。

原文来自 The Missing Guide to Font Formats: TTF, OTF, WOFF, EOT & SVG 。 去年的文章,如果今年有变动欢迎在评论中指出,这里会修正一下内容。翻译只是一点微小的工作(我译的随意求轻喷,逃)。

Web 字体简介: TTF, OTF, WOFF, EOT SVG相关推荐

  1. Web 字体的选择和运用

    首先来看一则设计师和前端小白的日常,这是使用 Mac OS 的设计师给的效果图 这是使用 Windows 开发的实际产品页面 我跟你们说,设定字体要按照基本法! (PS: 以上截图不代表网站真实面貌, ...

  2. Php在线字体woff转svg,在线字体格式转换ttf/otf/eot/woff/woff2格式工具

    在做网站样式时,我们有时找不到自己需要的字体文件,就需要自己需要自己来制作一个,如何制作了?这里给大家推荐一款自己在用的在线字体转换ttf/otf/eot/woff/woff2格式工具. 这款在线字体 ...

  3. Web字体格式介绍及浏览器兼容性一览

    目前,文字信息仍是网站最主要的内容,随着CSS3技术的不断成熟,Web字体逐渐成为话题,这项让未来Web更加丰富多彩的技术拥有多种实现方案,其中之一是通过@font-face属性在网页中嵌入自定义字体 ...

  4. web 常用的几种字体_3种免费Web字体服务比较

    这些年来,网站只能使用Arial,Georgia,Times等典型字体. 这是由于浏览器的局限性,浏览器一次只能只能从用户的计算机传递字体. 幸运的是,当今网络发展Swift,当今的浏览器支持webf ...

  5. ttf、eot、otf、woff、svg字体格式介绍

    由于网页中使用的字体类型不一和各浏览器对字体类型有不同的支持规格,衍生了多种字体格式类型. 主要有几个大分类:TrueType.Embedded Open Type .OpenType.WOFF 和S ...

  6. 非常方便的将 SVG 图标生成 TTF/EOT/WOFF/WOFF2/SVG 字体

    一般情况我通过 iconfont 或者 icomoon 来实现图标管理生成字体,导入到项目中使用. ┌────────┐ ┌────────────┐ │iconfont │──┐ │ Project ...

  7. css引入woff ttf,css引用跨域字体文件woff,eot,ttf问题

    Apache服务器解决方法(在conf.或者.htaccess 均可添加,或者宝塔站点配置中修改) <FilesMatch "\.(ttf|otf|eot|woff|woff2)$&q ...

  8. css 引用otf文件,CSS-如何将OTF / TTF文件转换为EOT格式?

    这是一种从otf一步构建ttf和eot版本的快速方法. 当然,如果不需要全部,可以拉出相关部分. 请注意,要从otf获得otot,必须去otf-> ttf-> eot. 同时安装fontf ...

  9. WPF使用外部字体文件(.ttf/.otf)

    WPF使用外部字体文件(.ttf/.otf) 1.字体文件(.ttf或者otf)导入到项目中,以.otf文件为例 2.设置文件属性为Resource,不复制 Net 5以上(包括net core)项目 ...

  10. web在网页中引用字体包(.ttf)嵌入特殊字体

    在写html时,有点时候需要显示一些特殊字体,不过这些特殊字体是系统一般不自带的,这时就需要我们自行加载要用的字体.方法如下: 1.首先在公用的style里添加: @font-face {font-f ...

最新文章

  1. Python从入门到精通- 什么是NumPy? (上)
  2. python教学视频-Python入门视频课程
  3. 无须搭建环境,只需十分钟使用Google Colab平台,基于YOLOv4和Darknet来实现的物体检测
  4. Scott Mitchell 的ASP.NET 2.0数据教程之三十九:: 在编辑和插入界面里添加验证控件...
  5. SAP CRM Fiori应用My note的技术实现
  6. matlab与专业应用,MATLAB应用技术--在电气工程与自动化专业中的应用
  7. Linux内核驱动如何编写?我们先从字符驱动入门开始
  8. 思博伦仪表SRV4(ISIS)测试指南
  9. 如何为人员办理离职停保
  10. 【AngularJS】 # AngularJS入门
  11. bzoj2429- 聪明的猴子
  12. 群晖docker搭建halo个人博客
  13. 腾讯图像超分辨率算法RealSR,开源了
  14. TextView 字体中间加 横划线
  15. 微商如何用百度来进行引流推广?
  16. 算法导论-动态规划(钢条切割问题)
  17. 数字图像处理(冈萨雷斯版)-第二章
  18. stm8 RTC自动唤醒
  19. 爬虫下载文章 BeautifulSoup
  20. [文摘20071019]九九重阳节的来历 重阳节传说故事 重阳节的活动习俗 重阳节诗篇

热门文章

  1. 山东大学舆情分析系统项目结题总结
  2. 百度文库会员制度悄然上线
  3. Visio Premium 2010密钥+破解激活方法
  4. 5000系列组装拆卸单成本
  5. 最新emoji表情代码大全_由一个 emoji 引发的思考
  6. 勒索病毒自救在线工具
  7. python bartender_bartender使用教程 - 卡饭网
  8. linux下删除服务
  9. C#编写上位机驱动运动控制板卡
  10. OBS 直播、录屏软件下载安装操作教程