注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

梦幻雪冰

技在手,能在身,思在脑,从容过生活——陈能堡

 
 
 

日志

 
 

【转载】网络字体@font-face 如何处理网页中的特殊字体  

2014-11-02 13:01:38|  分类: HTML5 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
网络字体@font-face 如何处理网页中的特殊字体
  随着网页的发展,网页中出现了越来越多的字体种类,原有的微软雅黑以及宋体早就无法满足设计的需要,那么,如何在网站中使用比较特殊的字体(如“华文行楷”)来装饰我们网站的部分呢?作为前端开发的人员都知道,在自己电脑上安装字体查看网页没有什么作用,因为网页会上传到服务器,访问网站的用户电脑上不一定会有这种字体,除非在客户端安装这个字体,才能保证每个用户网页中能够正常显示。如果客户端没有安装,那么页面渲染会调用客户端电脑上已有的字体来替代我们定义的字体。
  在以前的页面制作当中,一旦出现这些特殊字体,我们通常会使用图片来代替,不过这样的做法只适合于使用比较少的特殊字体的网站。而且用图片代替文字的做法,并不方便修改,也不利于SEO搜索引擎优化(譬如LOGO使用了h1标签,却由于字体很特殊而使用了图片,那么h1的作用基本等同于没有发挥出来)。
  在CSS2.0 规范中有一个东西,@font-face(IE4.0就存在),后来在 CSS2.1 草案中又被删掉。后来又被纳入到CSS3草案当中。这个东西就是今天要跟大家分享的东西——自定义网络字体。

网络字体的支持程度(截止到2014年10月31日)
网络字体@font-face 如何处理网页中的特殊字体 - 独行冰海 - 独行冰海
 

我们可以使用该属性进行自定义字体的设置,换句话说,使用它之后,我们就能够在网络中自由的使用自定义字体,先来看其基本的语法:

@font-face {
font-family: <YourWebFontName>;
src: <source> [<format>][,<source> [<format>]]*;
[font-weight: <weight>];
[font-style: <style>];
}

  其中font-weight和font-style都可以进行设置,也可以使用默认值。
  第一步设置的是font-family的名字,在这里设置好之后。网页中哪个部分需要使用这种字体,就输入font-family(对应的名字)即可。
  每个字体都有src的属性,包含source以及format定义,source是字体的本地名。(例如:华文行楷的字体名为“STXINGKA”),为所有的字体进行这样的设置的作用是:当用户本地已经下载了同样字体的时候,可以节约网上下载的成本。format是用于提示该资源 URL 所引用的字体格式,如果浏览器在本地没有找到这种字体,那么会将url中设置的字体加载到页面当中。设置自定义网络字体,必须设置src以及font-family。

关于字体格式以及浏览器对字体的支持程度表:

format 格式

Font 格式

后缀名

truetype

TrueType

.ttf

opentype

OpenType

.ttf, .oft

truetype-aat

TrueType with Apple Advanced Typography extensions

.ttf

embedded-opentype

Embedded OpenType

.eot

svg

SVG Font

.svg, .svgz


浏览器

支持类型

IE6,7,8

仅支持 Embedded OpenType(.eot) 格式。

Firefox 3.5

支持 TrueTypeOpenType(.ttf, .otf) 格式。

Firefox 3.6

支持 TrueTypeOpenType(.ttf, .otf) WOFF 格式。

Chrome,Safari,Opera

支持 TrueTypeOpenType(.ttf, .otf) SVG Font(.svg) 格式。


实际代码示例:

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>H5course</title>
<style>
@font-face {
font-family: 'STXINGKA';
src: local('STXINGKA'), url('STXINGKA.ttf') format('truetype');
}
.con {
font-family: 'STXINGKA';
font-size: 44px;
}
</style>
</head>
<body>
<div class="con">独行冰海</div>
</body>
</html>

欢迎沟通交流~独行冰海

  讲到这里,可能有的人会说,的确可以引入,但是一个字体包实在是太大了,如果直接让用户下载一个字体包,一费流量,二加载速度慢,没准等到字体加载完成的时候,用户已经关闭页面了。这个考虑的确是有必要的。
  国外的字库只用几十kb 的大小(英文字母 26大写+26小写 再加些标点符号),而我们的中文字库动不动就几M甚至 几十M不等,为了美化我们的网站而在字体上面增加几M的流量是很不明智的选择。
  接下来就为大家介绍解决的方法:我们完全可以把网页中出现的特殊字体提取出来,把没有必要的去除掉,制作一个精简版的字库供网页使用。

此时会使用到font creator 软件。基本的操作步骤为:
1)打开 font creator ,导入想精简的字库文件(字体在控制面板中可以找到,复制一份到桌面即可)
2)获取文字的unicode码。
可以通过js的 escape() 方法 实现:var uni = escape("独"); console.log(uni); %u 后面的 4位数字即为 unicode码。
网络字体@font-face 如何处理网页中的特殊字体 - 独行冰海 - 独行冰海
 
3)按 ctrl + F 调出查找功能,根据字符的 unicode 码进行查找,找到相应的汉字。查找时需要添加$符号
网络字体@font-face 如何处理网页中的特殊字体 - 独行冰海 - 独行冰海
 
4)新建一个字体库,并把多余的字删掉,之后在空白处点击右键选择添加,生成一个空白的字体存放单元,ctrl+c完整字库中需要添加的汉字,选择新字库中新建的空白字体存放单元,ctrl + v粘贴,覆盖即可
5)选择 映射 选项卡,在映射区块右侧 输入 字体的 unicode 码,点击添加
到此,我们的字体库就制作完成啦~~~

欢迎沟通交流~独行冰海
  评论这张
 
阅读(86)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017