您的位置:首页 > Web前端 > JavaScript

在网页中使用特殊字体的几种方式

2010-11-03 17:48 513 查看

方式1: Google Font API

 

因为IE目前只支持 eot 字体(Embed OpenType), 而TTF字体被Firefox / Opera / Chrome / Safari支持。 Google Font API 实际上是通过判断浏览器类型来返回相应的类型字体, 通过CCS3的 @font-face 来达到嵌入效果。Google Font API具体的用法参见这里:http://code.google.com/apis/webfonts/docs/getting_started.html

 

目前Google Font API支持的字体非常有限,列表在此 http://code.google.com/webfonts

 

如果字体无法在此列表中找到,你可以用相同的原理来实现

1. 首先找到此字体的ttf文件

2. 在 http://www.kirsle.net/wizards/ttf2eot.cgi
转换成 eot文件

3. 在你的CSS中分别引入eot 和 ttf

 

@font-face {
font-family: 字体名称;
src: url( 字体.eot ); /* IE */
src: url( 字体.ttf ) format("truetype");  /* 非IE */
}

/* 你就可以直接使用此字体了 */
html, body { font-family: 字体名称, verdana, helvetica, sans-serif;  }


 

这种方式目前兼容 IE6/7/8 , Opera 10+, Firefox 3.5+, Google Chrome 4.0+, Safari

 

优点:适合SEO 适合英文字体 灵活

缺点:中文字体动辄几M,以目前的网络环境还不实用

 

 

 

方式2: Flash替换法

 

Flash的flash.text.TextField 是支持内嵌字体的。这种方式比较有名的是 http://www.mikeindustries.com/blog/sifr

通过Javascript搜索页面上特定的HTML标记,(比如<h1>),将文字元素替换成 Flash,并设置指定字体

 

优点:适合SEO, 任何支持Flash的浏览器都可兼容

缺点:此Flash会根据字体内容的多少而动态调整Flash, 在UI设计上增加了很多难度。特别是对换行之类的处理。

         内嵌一个支持中文的swf 一般要几M, 以目前的网络环境来说加载速度很慢

 

 

 

方式3: 直接将文字做成图片

 

可以将页面上特殊字体的部分做成图片,不过这种方式不利于SEO,而且对于网站全球化非常麻烦

 

 

 

方式4: 浏览器客户端动态替换图片

 

通过Javascript搜索页面上特定的HTML标记,(比如<h1>), 想服务器发送AJAX请求,动态地生成这段文字使用某种字体的图片,最后客户端JS将此HTML标记替换成 img.  此类的代表是 http://facelift.mawhorter.net/

 

优点:适合SEO, 适合大字库字体(如中文)

缺点:对服务器压力稍大

 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息