45. web字体和图标
1. web字体
要了解字体图标,首先需要弄明白什么是 web 字体。
它能解决的问题:用户电脑上没有安装相应字体,强制让用户下载该字体。
如何解决问题:
- 提前准备好字体文件
- 使用
@font-face
指令制作一个新字体
示例:
先准备好字体文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="./css/index.css">
<title>web字体</title>
</head>
<body>
<p>
认识你自己!真相是,生命不在当下时刻之外。——李尔纳
</p>
</body>
</html>
/* 制作一个新的字体,名称叫做 good night */
@font-face {
/* 此时 font-family 用于定义引入的字体的名称。
也就是给引入的字体取个名字,后续通过该名称使用即可。 */
font-family: "good night";
/* 通过 src 属性 引入准备好的字体文件 */
src: url("../font/晚安体.ttf");
}
p {
font-family: "good night";
}
展示效果:
补充:由于不同的浏览器所能支持的字体格式是不一样的,所以,我们为了取得更好的兼容性,对于同一款字体,我们一般要准备多个文件,以此来兼容不同的浏览器。
由于这个字体,用户电脑上很可能是没有安装的,所以,需要下载该字体,而下载的过程是需要一定时间的,虽然很短暂,但是,我们强制刷新页面后,还是可以看到“闪烁”效果的。
补充:什么是强制刷新?
就是网页浏览后,一般会在本地留下缓存,普通刷新的话,浏览器会优先获取缓存里的资源代替从服务器上请求,以提高访问速度。强制刷新就是告诉浏览器不要获取缓存,重新从服务器请求网页上的所有资源,适用于开发测试或者某些资源更新。
- 方法1:Ctrl + Shift + R
- 方法2:Shift + F5
虽然,有很多web字体展示效果很nice,但是,字体文件还是有点大的,这就意味着,用户下载这些资源需要的时间会更长,从而影响用户体验,因此,我们很少会在实际开发中使用web字体。
2. 字体图标
以前我们如果想要在页面中引入一些小图标的话,那么只能使用图片。但是,由于web字体出现了,我们就可以将很多常见的图标,做成字体文件的格式,来引入到我们的页面中。相对于web字体文件来说,字体图标文件的大小会小很多,而且相对于之前引入图片的做法而言的话,文件大小应该也是小很多的。所以,我们不需要担心引入它而导致用户下载缓慢,体验差的问题。
字体图标库:
有3种引入方式
- Font class(线上)
- Symbol(线下)
- Unicode(CSS)
具体用法:回看视频(12min ~ )
注意:
如果后期又引入了新的字体图标,需要更新,并且会新生成一个链接地址,原来的地址要替换为新的才好使。
最佳实践:开发阶段使用在线的,发布时再使用离线的。