@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/

@font-face使用在线字体的更多相关文章

  1. CSS在线字体库,外部字体的引用方法

    目录: 1:CSS家族五大字体 2:360和谷歌外部字体引用方法 3:谷歌外部字体引用方法详解 4:@font-face用法详解 一: {font-family:serif,sans-serif,fa ...

  2. CSS在线字体库,外部字体的引用方法@font-face

    @font-face是CSS3中的一个模块,他主要是把自己定义的Web字体嵌入到你的网页中,随着@font-face模块的出现,我们在Web的开发中使用字体不怕只能使用Web安全字体,你们当中或许有许 ...

  3. Font Combiner – 自定义网页字体和图标生成工具

    Font Combiner 是一个功能丰富的 Web 字体生成工具和字体改进工具,提供字距调整.构造子集.各种提示选项和自定义字体字形组合.您可以生成您自己的自定义字体的格式和文件大小. 另外还有成千 ...

  4. CSS引入本地字体与在线字体

    有些时候为了强调某些文字,需要使用一些比较特别的字体,CSS中现在也可以比较方便的引入字体了,如下: /* 定义字体 */ @font-face{ font-family: Arista2; src: ...

  5. 如何在印刷品中使用遵循SIL Open Font License协议的字体

    如何在印刷品中使用遵循SIL Open Font License协议的字体 昨天在知乎看到了一个问题,( 如何在设计中声明字体开源许可证? - 知乎 (zhihu.com),恰好最近在研究一些开源协议 ...

  6. html font后面跟多种字体

    例子 body,div,dl,dt,dd,li,h1,h2,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td { margin: 0; pa ...

  7. Android Support Font 安卓系统支持字体(配图)

    测试了一台安卓机器,发现所有字体显示都一样.

  8. 关于font awesome或Glyphicons字体图标不能正确显示的问题

    此处讨论的是关于本地字体的安装和引进 实际操作经验中,某些网站模板设置的CSS, FONTS目录较深,如果按默认的路径设置,字体图标死活都不会显示. 解决办法是将FONTS目录,安装在网站根目录下 C ...

  9. moviepy音视频剪辑:TextClip.list(font)和search搜索字体报错UnicodeDecodeError:utf-8 codec cannott decode byte 问题

    ☞ ░ 前往老猿Python博文目录 ░ 在moviepy2.0.0.Dev版本中,执行如下语句: from moviepy.editor import * TextClip.search('gb', ...

随机推荐

  1. vs2017 打开cs文件提示无法识别的GUID格式

    总结一句话 no zuo no die. 是我自己在注册表中给vs增加了自动以管理员身份运行,把值给错了,弄成了 ~ RUNASADMIN WIN7RTM, 改成 ~ RUNASADMIN 后OK.还 ...

  2. PythonStudy——Python 注释规范

    注释规范:   什么是注释?  注释:不会被python解释器解释执行,是提供给开发者阅读代码的提示 单行注释: # 开头的语句 多行注释:出现在文件最上方,用''' '''包裹的语句   Pycha ...

  3. 斐波那契数列中获取第n个数据值

    class Fibonacci { /** * Description:迭代方法获取fibonacci第n项数值 * * @param int $n * @return int */ public s ...

  4. Hanlp1.7版本的新增功能一览

    Hanlp1.7版本在去年下半年的时候就随大快的DKH1.6版本同时发布了,截至目前1.7大版本也更新到了1.7.1了.本篇分别就1.7.0和1.7.1中新增的功能做一个简单的汇总介绍. HanLP ...

  5. SQL Agent 服务无法启动

    问题现象 从阿里云上镜像过来的一台的数据库服务器,SQL Agent服务启动不了,提示服务启动后停止. 如下是系统日志和SQL Agent的日志 SQLServerAgent could not be ...

  6. oracle中如何修改用户名和密码

    1.以Windows操作系统为例,打开命令提示符,输入命令sqlplus /nolog ,进入oracle控制台,并输入 conn /as sysdba;以DBA角色进入. 2.连接成功后,输入“se ...

  7. Flask 框架

    装饰器知识回顾 http://www.cnblogs.com/0bug/p/7978595.html 普通装饰器格式: def wrapper(func): def inner(*args, **kw ...

  8. 【C++】 多态的实现和原理

    本文转自 https://www.cnblogs.com/cxq0017/p/6074247.html 安利一篇blog,https://blog.csdn.net/u013982161/articl ...

  9. Flask--templates-多个模板文件,视图函数如何判断查询路径

    结论:以当前视图的模板为基准,查找模板文件,如果没有找到就会报错,如果需要更换模板的访问路径,可以修改__name__参数. 参考资料: https://blog.csdn.net/f70408410 ...

  10. Linux查看线程

    我的程序在其内部创建并执行了多个线程,我怎样才能在该程序创建线程后监控其中单个线程?我想要看到带有它们名称的单个线程详细情况(如,CPU/内存使用率). 线程是现代操作系统上进行并行执行的一个流行的编 ...