前端中字体的使用
字体是前端的基础,本文介绍常见的几种字体以及如何在工程中引入自定义的字体。
字体的类型
常见的字体类型有 TTF/OTF, WOFF/WOFF2, SVG,EOT (这个是按照浏览器的支持率由高到底排序的)
- TTF(True Type Font)
由微软与苹果开发,广泛用于windows/Mac 操作系统,浏览器支持最高的字体,除了IE8,IE9部分支持。缺点是不能压缩,所以体积比较大 - OTF(Open Type Font)
是TTF的进化版,也是微软苹果共同开发。浏览器支持比较好 - WOFF(Web Open Fort Format)
它本质上是TTF/OTF,但是带有额外的信息,特别是它支持压缩,浏览器支持相对较好。针对web 开发的字体
WOFF2是WOFF的下一代字体,压缩率比WOFF高,由于不是一个主要的升级,所以浏览器支持没有WOFF高。 - EOT(Embedded Open Type)
微软开发的针对网页的字体,只有IE8/9支持。 - SVG
苹果开发的字体,只有Safri,Safri mobile 支持。如果要在iphone/ipad 上开发,只有这个字体支持。
总结一下
TTF/OTF, WOFF/WOFF2, 是相对浏览器支持率比较高的字体。如果是iphone/ipad, 那就只能svg, EOT也就是IE8/9 了。
如何在前端中引用字体并保持各个浏览器的兼容
- 引用字体可以通过css 中的
@font-face
,代码如下
@font-face{
font-family:'yourfontname';
src:url('fontfileurl1') format('fonttype1'),
rl('fontfileurl2') format('fonttype2');
}
/*然后我们就可以采用上面的youfontname了*/
- 上半部介绍了字体的类型及支持率,那么如何定义字体才可以取得更好的支持性呢。先看下面这个经典的写法。
原则上我们想使用的字体是woff2>woff>ttf>svg>eot
src: url("font-file-path.eot");/*这个是为IE7,IE8,准备的它会优先被命中,对于其他的浏览器不支持就跳过了。*/
/*下面这个地方为什么又出现一个src,原因是兼容模式下IE7/IE8对于有问号的src 不能识别,也就是这个src 会被忽略掉,所以第一行也要加src. 这边的url 里面的?#iefix, 是为了避免IE9下的404问题的,其实可以简化成?#, IE9会将?后面的当作参数*/
src: url("eot-font-file-path.eot?#iefix") format("embedded-opentype"),
url("woff2-font-file-path.woff2") format("woff2"),
url("woff-font-file-path.woff") format("woff"),
url("ttf-font-file-path.ttf") format("truetype"),
url("svg-font-file-path.svg#fontname") format("svg");
上述的写法也可以简化成如下写法
src: url("font-file-path.eot");
src:
local('☺'),/*IE9之下是识别不了图形符号的,下面的就自动过滤掉了*/
url("woff2-font-file-path.woff2") format("woff2"),
url("woff-font-file-path.woff") format("woff"),
url("ttf-font-file-path.ttf") format("truetype"),
url("svg-font-file-path.svg#fontname") format("svg");
标签:format,url,前端,字体,file,使用,path,font
From: https://www.cnblogs.com/kongshu-612/p/17718629.html