建站资讯
2012-09-18 23:52:01
浏览:
最近客户的页面开发需要嵌入特殊字体的问题,搞的人很头疼,在网上找了很多相关的文章,以下转载自某位网友的文章以供参考:
一个常常令设计师和前端开发人员都头疼的事情就是字体的使用,设计师常常在设计稿中使用某些很漂亮的字体,以实现比较酷炫的界面。但这样常常给编码人员造成一些难度,如果在页面中放弃使用这些字体,设计师会感到郁闷,而如果使用这些字体的话,就要切图并使用很多额外的样式——又一个鱼和熊掌的抉择。还好,现在已经有了一些相关的替代技术了。
css3的@font-face属性(事实上css2中就已引入),为我们带来了一些希望,而firefox 3.5新增的对@font-face的支持,让我们离这个希望更进了一些。
到现在为止,已经有safari、chrome、opera 10和firefox 3.5支持@font-face了,比较意外的是,ie系列浏览器也部分支持该属性。mozilla旗下的其它产品,seamonkey 2 和thunderbird 3 也支持该属性。
| 浏览器 | 最低版本 | 支持字体 |
|---|---|---|
| internet explorer | 4.0 | 只支持opentype字体(eof格式) |
| firefox (gecko) | 3.5 (1.9.1) | truetype(ttf格式)和opentype 字体 |
| opera | 10.0 | truetype和opentype 字体 |
| safari (webkit) | 3.1 (525) | truetype和opentype 字体 |
从表中可以看出,ie系浏览器不支持ttf格式的字体,只支持eof格式,不过,微软官方发布了一个weft工具,可以将ttf转化为eof,需要的朋友可以去下载使用。
可以使用的样式如下:
@font-face { font-family: qianduannet; font-style: normal; font-weight: 400; src: url("sketchrockwell.ttf"); } .fontface{ font-family: qianduannet; font-size: 3.2em; letter-spacing: 1px; text-align: center; }
ie中的样式如下:
@font-face { font-family: goudy stout; font-style: normal; font-weight: 400; src: url(goudyst0.eot); }
这是目前最简单实现嵌入字体的方法。
sifr并非一种新技术,而是已经存在并被使用很多年了。sifr是一种很有用也很好用的文本替换技术,通过flash+js+css将网络字体嵌入到页面中。
考虑到网上已经有很多资源,本文就不再赘述,想要了解的朋友可以参考一下文章:
typeface被认为是替代sifr的最佳方案,相对于sifr,typeface少了flash的应用,使用纯js来嵌入相关字体,而且用法也很简单:在页面中引入相应的js文件就ok了。
<html> <head> <link rel="stylesheet" type="text/css" ref="/style.css"> <script type="text/javascript" src="typeface-0.10.js"></script> <script type="text/javascript" src="helvetiker_regular.typeface.js"></script> </head> <body> <div class="myclass typeface-js" style="font-family: helvetiker"> 文本文本... </div> </body> </html>
从中我们可以看出来,使用typeface只需要着简单的几步就可以在页面中使用嵌入字体了。
cufon是一个比较新的技术,被定位为有价值的sifr替代方案,它有很多优势:
cufon通过生成器将字体文件转化为svg字体,再将其转换为vml文件,这对ie很重要,因为ie原生支持vml文件。最后,使用复杂的javascript函数将vml文件编码为json文件(typeface的原理与此类似)。如下图所示:

这样做有很多好处:
cufon的用法与typeface类似,需要加载一个库文件和字体文件。而与typeface不同的是,你需要使用js初始化cufon:
<script type="text/javascript"> cufón.replace('h2', { fontfamily: 'qlassik medium' }); script>
这与typeface的在样式中定义字体很不一样。
| cufón | typeface.js | |
|---|---|---|
| file size | 14.0kb (压缩后) | 16.3kb (未压缩) |
| 支持的浏览器 | firefox 1.5+, safari 3+, opera 9.5+, google chrome 和 internet explorer6+ | firefox 1.5+, safari 2+, and internet explorer 6+, 最新版已经支持ie8 |
| 支持的字体类型 | .ttf, .otf, pfb, postscript | .ttf |
| 支持的字体样式 | font-size, font-style, font-weight, line-height, text-shadow, color | font-size, font-style, font-weight, font-stretch, letter-spacing, line-height |
| 可选文字? | 尚不支持 | 尚不支持 |
从这个对比中可以看出来,两者并没有太大的不同,cufon支持更多的浏览器和字体类型,而typeface支持更多的字体样式。实际应用中貌似typeface方便一些,可以直接在样式中定义字体,而cufon则有总体文件大小方面的优势。具体用哪一个,看你自己的喜好吧。
事实上,sifr、typeface.js和cufon都是目前常说的文本替换技术,这些技术都可以用来替换@font-face,并且实现更好的浏览器兼容性。但是每种技术都不是完美的:
所以,使用哪种方案,要看你的需求和喜好,或许你宁愿切更多的图片也不愿使用这些技术?
顶 网站建设全包主要包括哪一些?
网站建设全包是一种全方位、一站式的服务,旨在为客户提供从需求分析、设计规划、技术开发到测试上线以及后期维护的完整解决方案。以下是网站建设全包服务的主要内容包括:
顶 网站建设全包:解锁SEO引流新境界,助力品牌飞跃增长
选择网站建设全包服务,意味着您将拥有一个全方位、专业的团队,为您量身定制最适合的网站建设及SEO引流方案。让我们一起解锁SEO引流的新境界,共同见证品牌的飞跃增长!
顶 网站建设全包:一站式打造您的专属在线品牌殿堂
在数字化浪潮中,网站建设全包服务成为了企业连接客户、展示品牌价值的重要桥梁。通过这一服务,企业无需担心技术难题,只需专注于业务本身,就能轻松拥有一个设计精美、功能完善的网站。