- 浏览: 485211 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
Source_野驴:
...
jsp静态化和伪静态化 -
zidanzzg:
很好的知识,找到了利用异或交换数值的理论支持,谢谢分享
XOR的性质和运算 -
ueseu:
引用(2) DomainDomain域名也是Cookie的一部 ...
Cookie的组成 -
ueseu:
引用Secure取true或者false值。如果为true,那 ...
Cookie的组成 -
liqi___123:
理解得很透彻,谢谢!!
ROLAP、MOLAP和HOLAP联机分析处理区别
字体使用是网页设计中不可或缺的一部分。经常地,我们希望在网页中使用某一特定字体,但是该字体并非主流操作系统的内置字体,这样用户在浏览页面的时候就有可能看不到真实的设计。美工设计师最常做的办法是把想要的文字做成图片,
这样做有几个明显缺陷:
1. 不可能大范围的使用该字体;
2. 图片内容相对使用文字不易修改;
3. 不利于网站SEO(主流搜索引擎不会将图片alt内容作为判断网页内容相关性的有效因素)。
网络上有一些使用sIFR技术、或 javascript/flash hack的方法,但实现起来或繁琐,或有缺陷。下面要讲的是如何只通过CSS的@font-face属性来实现在网页中嵌入任意字体。
【第一步】
获取要使用字体的三种文件格式,确保能在主流浏览器中都能正常显示该字体。
1. @font-face
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,需要的朋友可以去下载使用 。
可以使用的样式如下:
- .TTF或.OTF,适用于Firefox 3.5、Safari、Opera
- .EOT,适用于Internet Explorer 4.0+
- .SVG,适用于Chrome、IPhone
下面要解决的是如何获取到某种字体的这三种格式文件。一般地,我们在手头上(或在设计资源站点已经找到)有该字体的某种格式文件,最常见的是.TTF文件,我们需要通过这种文件格式转换为其余两种文件格式。
字体文件格式的转换可以通过网站FontsQuirrel 或onlinefontconverter 提供的在线字体转换服务获取。这里推荐第一个站点,它允许我们选择需要的字符生成字体文件(在服务的最后一个选项),这样就大大缩减了字体文件的大小,使得本方案更具实用性。
【第二步】
获取到三种格式的字体文件后,下一步要在样式表中声明该字体,并在需要的地方使用该字体。
字体声明如下:
- @font-face {
- font-family: 'fontNameRegular';
- src: url('fontName.eot');
- src: local('fontName Regular'),
- local('fontName'),
- url('fontName.woff') format('woff'),
- url('fontName.ttf') format('truetype'),
- url('fontName.svg#fontName') format('svg');
- }
- /*其中fontName替换为你的字体名称*/
@font-face { font-family: 'fontNameRegular'; src: url('fontName.eot'); src: local('fontName Regular'), local('fontName'), url('fontName.woff') format('woff'), url('fontName.ttf') format('truetype'), url('fontName.svg#fontName') format('svg'); } /*其中fontName替换为你的字体名称*/
在页面中需要的地方使用该字体:
或者
<p style="font-family: fontNameRegular">掬水月在手,落花香满衣</p>
其他方法:
sIFR
sIFR并非一种新技术,而是已经存在并被使用很多年了。sIFR是一种很有用也很好用的文本替换技术,通过 Flash+JS+CSS将网络字体嵌入到页面中。
考虑到网上已经有很多资源,本文就不再赘述,想要了解的朋友可以参考一下文章:
Typeface.js
Typeface 被认为是替代 SIFR的最佳方案,相对于sIFR,Typeface少了Flash的应用,使用纯JS来嵌入相关字体,而且用法也很简单:在页面中引入相应的js文件就OK了。
- <html>
- <head>
- <!-- 加载所有的样式先 -->
- <link rel="stylesheet" type="text/css" ref="/style.css">
- <!-- 再加载typeface.js 库文件和typeface.js字体文件-->
- <script type="text/javascript" src="typeface-0.10.js"></script>
- <script type="text/javascript" src="helvetiker_regular.typeface.js"></script>
- </head>
- <body>
- <!-- 继续并使用CSS指定typeface.js 字体 -->
- <div class="myclass typeface-js" style="font-family: Helvetiker">
- 文本文本...
- </div>
- </body>
- </html>
<html> <head> <!-- 加载所有的样式先 --> <link rel="stylesheet" type="text/css" ref="/style.css"> <!-- 再加载typeface.js 库文件和typeface.js字体文件--> <script type="text/javascript" src="typeface-0.10.js"></script> <script type="text/javascript" src="helvetiker_regular.typeface.js"></script> </head> <body> <!-- 继续并使用CSS指定typeface.js 字体 --> <div class="myclass typeface-js" style="font-family: Helvetiker"> 文本文本... </div> </body> </html>
从中我们可以看出来,使用Typeface只需要着简单的几步就可以在页面中使用嵌入字体了。
typeface资源:
cufon
cufon是一个比较新的技术,被定位为有价值的sIFR替代方案,它有很多优势:
- 无需浏览器插件——被浏览器原生支持;
- 兼容性——兼容各个主流浏览器
- 易用—— 无需配置
- 速度—— 快速渲染大量字体
cufon的原理:
cufon通过生成器将字体文件转化为SVG字体,再将其转换为VML文件,这对IE很重要,因为IE原生支持VML文件。最后,使用复杂的JavaScript函数将VML文件编码为 JSON文件(typeface的原理与此类似)。如下图所示:
这样做有很多好处:
- 与加载一个字体文件,你只需要加载一些js文件就可以;
- 客户端无需再次手工编码;
- 外部js文件直到加载完成才会被执行,这可以让我们实现无闪烁的干净的替换。
- 压缩率高。相对于字体文件,可压缩掉60-80% 。
cufon 的用法:
cufon的用法与typeface类似,需要加载一个库文件和字体文件。而与typeface不同的是,你需要使用js初始化 cufon:
- <script type="text/javascript">
- Cufón.replace('h2', { fontFamily: 'Qlassik Medium' });
- </script>
<script type="text/javascript"> Cufón.replace('h2', { fontFamily: 'Qlassik Medium' }); </script>
这与typeface的在样式中定义字体很不一样。
cufon的介绍:http://www.ibm.com/developerworks/cn/web/0911_zhuzh_cufon/
cufon资源:
cufon和typeface.js对比:
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,并且实现更好的浏览器兼容性。但是每种技术都不是完美的:
- @font-face最简单,虽然大部分浏览器也都支持了,但是其浏览器兼容性并不是很完美,对IE还需要 eof字体的特殊支持,而且对于中文字体来说,一般都很大,这会占用很大的页面加载时间和服务器流量。
- sIFR是兼容性和可用性最好、对SEO友好的一种方案,但也是实现起来最复杂的,而且需要浏览器支持Flash插件。
- typeface和cufon都是利用在IE中渲染VML,而在非IE浏览器中使用canvas的方式实现“伪”字体的,他们使用起来相对简单,但是可用性和用户体验以及SEO都不是很理想。
- 版权问题是一个很重要的问题,无论你使用哪种技术,都需要考虑文字的授权。
所以,使用哪种方案,要看你的需求和喜好,或许你宁愿切更多的图片也不愿使用这些技术?
发表评论
-
http返回网页状态码查询
2013-05-18 23:29 1051当你想查询某个页面的 ... -
铱迅Web应用防护系统(WAF)介绍
2013-05-04 22:41 0产品介绍 铱迅Web应用防护系统(也称:铱迅w ... -
javascript地址栏写法
2013-05-01 11:43 12140. 前言 所谓IE地址栏 ... -
javascript单引号和双引号区别
2012-09-10 16:58 791在一个网页中的按钮,写onclick事件的处理代码,不小 ... -
超链接打开目标(target)的测试
2012-05-28 12:51 819链接的target属性决定了链接在哪边打开,它的值通常为以下五 ... -
JSP中文验证码
2012-05-14 17:18 1244以上两篇文章的内容介绍了有关JSP中产生数字验证码跟中文验证 ... -
CSS简写方法说明
2011-10-26 14:15 1022简单的说,css简写就是在等效的前提下,把多句 ... -
ZK框架简介
2011-07-21 08:08 13681、ZK框架简介 ZK框架是 ... -
使用document.domain跨域实例
2011-05-29 22:42 2012Ajax跨域一直是个比较麻烦的问题,例如:断 ... -
再谈iframe自适应高度
2011-05-18 15:56 1018转自:http://ued.koubei.com/?p=243 ... -
JavaScript修改css样式style
2011-05-18 15:26 1072用JavaScript修改网页样式一、局部改变样式分为改变 ... -
关于multipart/related;boundary=
2011-05-16 09:51 3289http协议对mime类型有详细描述,multipart/ ... -
MIME邮件格式分析及信息提取
2011-05-16 09:50 2007摘 要 MIME是目前互联网邮件普遍采用的 ... -
在网页中使用Data URI嵌入Base64编码文件
2011-05-15 21:19 4891在网页中嵌入Base64编码文件 通过这种方法可以将任何文件 ... -
SSO三种方案
2011-03-11 18:13 12611、基于domain的方案。 应用A在a.domain ... -
面向站长和网站管理员的Web缓存加速指南
2011-01-04 16:18 820原文(英文) ... -
Cookie的组成
2010-12-28 11:21 3643Cookie的组成 下面讲解一下Cookie的组成,对HTT ... -
可缓存的动态页面设计
2010-12-24 14:21 1344什么样的页面能够比较好的被缓存服务器缓存呢?如果返回内容的HT ... -
Apache缓存系统
2010-12-22 13:52 1902Apache 从2.0开始就 ... -
使用htmlfile隐藏IE浏览器正在打开网页状态的代码
2010-12-20 16:30 2252一般情况下,采用长连接,能持续的在客户端显示信息。 比如 ...
相关推荐
CSS的`@font-face`规则为我们提供了一个解决方案,可以实现在网页中嵌入自定义字体,使得无论用户系统是否安装了这些字体,都能够正确显示页面设计。下面我们将详细探讨`@font-face`的使用方法及其背后的原理。 ...
总之,虽然在网页中嵌入非系统字体有一些挑战,但通过合理的转换和CSS设置,我们仍然可以实现这一功能。对于特定的设计需求,这种方式无疑增加了网页的个性化和多样性。然而,考虑到性能和兼容性,设计师和开发者...
3. **可嵌入任意HTML元素**:不同于基础的`title`属性只能显示纯文本,这个插件允许在Tooltip中包含HTML代码,从而可以展示富文本、图片、链接等复杂内容。 4. **多步提示**:可能包含多个阶段的提示,引导用户逐步...
- 矢量字库是基于路径的字体,可以在任意分辨率下保持清晰。 7. **在CJK中都可以使用哪些矢量字库?** - CJK支持大多数的矢量字库,如SimSun、SimHei等。 8. **如何生成支持中文拷贝粘贴的PDF文件?** - 为了...
"ppt倒计时可任意设置时间.zip" 是一个专为PowerPoint设计的解决方案,它提供了无需编程技能就能实现倒计时功能的工具。这个压缩包包含了两个关键文件:Readme-说明.htm 和 FlyClock_setup。 Readme-说明.htm 文件...
解决方案:用户可以通过“插入”→“页码”选项插入页码,然后选择页码的位置和格式。 2. 问题:如何在 Word 中设置页码的格式? 解决方案:用户可以使用 Word 的格式工具栏来设置页码的字体、颜色、大小等属性。 ...
首先,我们要理解图标在网页中的重要性。图标能够以视觉方式传达信息,尤其在空间有限的界面上,比如移动设备。它们可以节省文字描述,提高用户体验,使用户快速识别和理解页面功能。例如,购物车图标通常代表“添加...
例如,对于IT专业人士,可能会强调编程语言、项目管理经验、技术解决方案或软件开发成就。 总结来说,这个压缩包提供的简历模板是IT求职者的一个实用资源,通过它可以学习如何构造一个突出自己技能和经验的简历,...
3. **图文插入**:在CFAttributedString中,你可以设置不同的属性,比如字体、颜色和下划线等。插入图片可以通过添加自定义字形来实现,这个字形实际上是一个包含图片数据的CTRunDelegate。这样,当Core Text渲染...
TrueType 1.0 字体文件格式为跨平台字体兼容性提供了强大的解决方案。通过对字体结构和渲染技术的深入理解,可以更好地利用 TTF 文件来创建高质量、高兼容性的文本内容。随着技术的发展,TrueType 格式也在不断演进...
6. **项目经验**:展示你参与过的真实项目,包括项目简介、你的角色以及你实现的技术解决方案。 7. **证书与荣誉**:如果有任何相关的专业认证(如PMP、CISSP、CEH)或奖项,别忘了提及。 8. **个人陈述**:简短...
下面将详细讲解这个漏洞、其影响以及解决方案。 **MS12-020漏洞详解:** MS12-020,官方称为“Unicode脚本处理器漏洞”,是一个远程代码执行漏洞。攻击者可以通过构建恶意的TrueType字体(TTF)文件,并诱使用户...
Endnote是一款强大的文献管理软件,它能够帮助研究人员和学生整理、引用和管理大量的学术参考文献。在撰写学术论文或毕业设计时...在使用过程中,遇到任何问题,都可以查阅Endnote的帮助文档或在线资源来获取解决方案。
在Windows、Mac或Linux操作系统中,用户可以轻松地解压此文件以访问其内容,即"简历模板(可任意修改) (168).docx"。 ".docx" 文件是Microsoft Word文档的现代格式,支持丰富的文本编辑、样式设置、图形插入和宏...
在IT行业中,简历是求职者展示自己技能、经验和成就的重要工具。"简历模板(可任意修改) (665).zip" 提供了一个方便求职者快速构建专业简历的资源。这个压缩包包含一个名为 "简历模板(可任意修改) (665).DOCX" 的...
解决方案是:在“查找内容”框中输入目标词,在“替换为”框中重复输入,随后激活“高级”选项,从“格式”菜单中选择字体属性(如红色、斜体、下划线),最后执行“全部替换”。这一技巧极大地节省了时间,提升了...
- **富文本编辑**:RICHTX32.ocx控件允许用户在网页上进行格式化文本的输入,如改变字体、大小、颜色,以及插入图片和超链接。 - **应用程序开发**:在桌面应用程序中,开发者可以利用此控件来实现复杂的文本编辑...
- **模板应用**:在Word中打开.DOCX文件,选择“设计”菜单中的不同主题和样式,以改变整体布局和颜色方案。 - **文本编辑**:直接在文档中输入或修改内容,利用“开始”菜单的工具调整字体、字号和颜色。 - **...