WEB中的字体
前言
1 | 某天,隔壁新来的漂亮UI小妹妹又优雅的丢给你一个压缩包,你满心欢喜的解压 |
WEB 安全字体
不同操作系统内置的字体是不同的,甚至差异很大,例如:
win7和mac下,只有十种字体重合,Windows XP中甚至没有其中的Palatino 和Trebuchet MS字体…..
因此为了兼容性考虑,最安全的字体有:
- Arial
- Courier New
- Georgia
- Times New Roman
- Verdana
- …
- 随着操作系统的发展更新,这个数据也不是最准确的,可选的可能比上面五个多一些,请以实际测试为准
备选字体组合
当不确定网页用户电脑上是否有某种字体时,可以使用字体组合,提供备选的字体:
1 | font-family:'Times New Roman', Times, serif |
备选的意思可以参考备胎,就是:
当浏览器在系统中找不到第一种字体时,会自动去使用第二种,依次类推…
自定义字体
如果对某种不通用字体有刚需,可以使用自定义字体。
- UI需要提供字体的woff和eot格式源文件(需要考虑文件太大会影响网页加载)
- 前端需要在css中自定义@font-face(不用担心浏览器兼容性)
至于为什么是woff和eot:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16TureTpe(.ttf)格式:
.ttf字体是Windows和Mac系统的最常见的字体,是一种RAW格式,不为网站优化
OpenType(.otf)格式:
.otf字体被认为是一种原始的字体格式,其内置在TureType的基础上,所以也提供了更多的功能
Web Open Font Format(.woff)格式:
.woff字体是Web字体中最佳格式,他是一个开放的TrueType/OpenType的压缩版本,同时也支持元数据包的分离
Embedded Open Type(.eot)格式:
.eot字体是IE专用字体,可以从TrueType创建此格式字体
SVG(.svg)格式:
.svg字体是基于SVG字体渲染的一种格式
这就意味着在@font-face中我们至少需要.woff,.eot两种格式字体,甚至还需要.svg等字体达到更多种浏览版本的支持。
不同浏览器对不同字体文件格式的兼容性也不同:
总结来说:eot(供ie使用) + woff(供其他现代浏览器使用)是最佳组合,如果要兼容更多老版本浏览器/移动端浏览器可以加上ttf或svg)
定义font-face语法:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19@font-face {
font-family: <YourWebFontName自定义的字体名>;
src: <source> [<format>][,<source> [<format>]]*;
[font-weight: <weight>];
[font-style: <style>];
}
/*source:字体文件路径*/
/*format:字体文件格式 eg. ttf,otf,woff,eot,svg...*/
/*示例*/
@font-face {
font-family: 'YourWebFontName';
src: url('YourWebFontName.eot'); /* IE9兼容模式 */
src: url('YourWebFontName.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('YourWebFontName.woff') format('woff'), /* 现代浏览器 */
url('YourWebFontName.ttf') format('truetype'), /* Safari, Android, iOS */
url('YourWebFontName.svg#YourWebFontName') format('svg'); /* 老版本 iOS */
}
总结
- UI最好就用最安全的几种通用字体
- 如果想用不通用的字体
- 要么:提供备选字体
- 要么:提供字体文件(eot+woff+[svg/ttf]),且要考虑选择字体源文件体积较小的字体