@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. Unity在UI界面上显示3D模型/物体,控制模型旋转

    Unity3D物体在UI界面的显示 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- ...

  2. 什么是node

    node 编辑 锁定讨论999 本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!   node(结点):网络连接的端点,或两条(或多条)线路的连接点.结点可以是处理器.控制器或 ...

  3. vue中使用axios给生产环境和开发环境配置不同的baseUrl

    第一步:设置不同的接口地址 找到文件:/config/dev.env.js 代码修改为: var merge = require('webpack-merge') var prodEnv = requ ...

  4. Netty学习记录

    一.Netty简介 Netty 是一个基于 JAVA NIO 类库的异步通信框架,它的架构特点是:异步非阻塞.基于事件驱动.高性能.高可靠性和高可定制性. Netty 是一个 NIO client-s ...

  5. JDK 8 安装及配置

    1.配置java环境变量 注意:jdk文件夹名字取名不要用汉语取名. 1)鼠标右键点击我的电脑(计算机)选择属性栏 2)再点击左边高级系统设置 3)点击环境变量 4)在用户变量窗口新建变量名为JAVA ...

  6. Nginx反向代理tomcat返回400 bad request

    Nginx反向代理tomcat返回400 bad request nginx 版本1.12, tomcat版本 9.06 最近用Nginx做反向代理tomcat,实现前后端分离,nginx 将请求代理 ...

  7. nginx配置http强制跳转https

    nginx配置http强制跳转https 网站添加了https证书后,当http方式访问网站时就会报404错误,所以需要做http到https的强制跳转设置. 一.采用nginx的rewrite方法 ...

  8. git项目提交后执行添加忽略操作

    需要删除文件暂存区中的忽略文件 git rm -r --cached 需要忽略的已提交文件或文件夹 eg: git rm -r --cached target/

  9. 【java】类的继承

    继承:特殊类拥有一般类的全部属性与行为. 继承好处:1.提高了代码的复用性2.让类与类之前产生了关系,有了这个关系才有多态的特性.继承是类和类之前的关系. 注意事项: 1.java只支持单继承,不支持 ...

  10. docker centos7创建consul镜像以及用docker-compose启动镜像

    直接贴代码了: Dockfile: # Version 0.1 FROM kuba_centos7 MAINTAINER kuba si812cn@163.com # This is the rele ...