@font-face规则在CSS3规范中属于字体模块,该规则的推出对于网页设计来说是一个革命性的进步。在传统设计中,设计师不敢使用各种艺术字体类型,甚至是常规字体也需要慎重使用。因为设计师必须考虑每位浏览者的系统中是否安装了所有字体。有了@font-face规则,这个顾虑就可以放下了:只要在互联网上指定一种字体类型源,而不管用户电脑是否安装该字体,设计的网页都能够正确显示。
用较为专业的话来讲,@font-face能够加载服务器端的字体文件,让客户端浏览器显示客户端没有安装的字体。如果没有@font-face规则,浏览器只能够在客户端系统中寻找指定字体,这就给网页设计带来了很多限制,妨碍了设计师的创意设计,也就无法展现丰富多彩的字体艺术。
@font-face规则的语法格式如下:
@font-face { <font-description> }
@font-face规则的选择符是固定的,用来引用服务端的字体文件。<font-description>是一个属性名值对,格式类似如下样式:
description: value; description: value; description: value; {...} description: value;
属性及其取指说明如下:
- font-family:设置文本的字体名称。
- font-style:设置文本样式。
- font-variant:设置文本是否大小写。
- font-weight:设置文本的粗细。
- font-stretch:设置文本是否横向拉伸变形。
- font-size:设置文本字体大小。
- src:设置自定义字体的相对路径或者绝对路径。
需要注意的是,低版本IE浏览器只支持微软自有的.eot(Emberdded)字体样式,而其他浏览器都不支持这一格式。不过,从Safari3.1开始,网页重构工程师已经可以设置.ttf(TrueType)和.oof(OpenType)两种字体作为自定义字体了。
下面我们来看一个简单的示例:
/*引入外部字体文件*/ @font-face{ font-family: myFirstFont; /*eot格式兼容IE*/ src:url(fonts/AdineKirnber.eot); /*ttf格式兼容非IE*/ src:url(fonts/AdineKirnber.ttf); } h1{ font-family: myFirstFont,verdana,sans-serif; font-size:4em; }
运行效果如下:
注意:嵌入外部字体的做法对于中文网站来说不太适用。因为一个中文字体文件小的也有几M,大的有十几M,这么大的字体,其下载过程让人难以忍受,同时服务器也不能接受如此频繁的下载请求。所以对于中文来说,如果只是想标题使用特殊字体,最好设计成图片。由于英文字体只有几十kb,与一张图片的大小差不多,如果有大量的文字需要使用该字体,存储、带宽方面就划算多了。
最后,附上两个在线字体转换格式的网站:
font2web:http://www.font2web.com/
freefontconverter:http://www.freefontconverter.com/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构