我们都知道,每个人电脑装的字体都是不太一样的。下面这句代码表示p元素优先使用Arial字体来显示,如果你的电脑没有装Arial字体,那就接着考虑Verdana字体。如果你的电脑还是没有装Verdana字体,那就再接着考虑
Georgia字体……以此类推。
p{font-family: Arial, Verdana, Georgia;}
那么如果想要使得所有用户的电脑上都能正常显示某一种字体,应该怎么做呢?此时就需要用到这一节介绍的嵌入字体了。所谓“嵌入字体”,指的是把服务器中的字体文件下载到本地电脑,然后让浏览器端可以显示用户电脑没有安装的字体。说白了,就是给你的电脑安装某一种字体。
在CSS3中,我们可以使用@font-face方法来加载服务器端的字体,从而使得所有用户都能正常显示该字体。
语法:
@font-face
{
font-family: 字体名称;
src:url(文件路径);
}
说明:
font-family属性用于定义字体的名称,src属性中的“文件路径”指的是服务器端中字体文件的路径
举例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style type="text/css">
/*定义字体*/
@font-face
{
font-family: myfont; /*定义字体名称为myfont*/
src: url("css/font/Horst-Blackletter.ttf");
}
div
{
font-family:myfont; /*使用自定义的myfont字体*/
font-size:60px;
background-color:#ECE2D6;
color:#626C3D;
padding:20px;
}
</style>
</head>
<body>
<div>lvyestudy</div>
</body>
</html>
浏览器预览效果如下图所示。
分析:
在这个例子中,我们使用@font-face方法来定义了一个名为“myfont”的字体,然后在div元素中使用font-family属性来使用myfont字体。通过这种方式,我们就可以使得所有用户的浏览器都能够显示相同的字体效果。
从这个例子我们可以总结一下,如果想要实现嵌入字体,一般需要以下两步。
①使用@font-face定义字体。
②使用font-family引用字体。
有一点要特别注意,我们并不建议使用@font-face来实现嵌入中文字体。这是因为中文字体文件大多数都是10MB以上。这么大的字体文件,会严重影响页面的加载速度,导致用户体验非常差。不过对于英文字体来说,字体文件往往只有几十KB,非常适合使用@font-face。之所以中文字体文件大,而英文字体文件小,原因很简单:常用中文有几千个汉字,而英文却只有26个字母!
实际上,@font-face方法不仅可以用于嵌入字体,最重要的还可以实现字体图标技术(即iconfont)。对于字体图标技术,小伙伴们可以去看一下《从0到1:CSS进阶之旅》这本书中的相关章节。