Web字体(链接)嵌入
2015-10-29 16:33
232 查看
下面是我最近在学习的两种字体嵌入方法
1、@font-face
使用@font-face可以这样做:
然后,按我们已经习惯的做法引用font-family:
这样,就可以在网站设计中使用你拥有的字体啦。
但是,事情其实那么简单,@font-face存在着几个缺点。(1)浏览器支持问题,一些低版本浏览器并不支持@font-face,IE6只支持.eot(EmbeddedOpenType)格式。(2)字体文件存诸在网站上,允许公共访问,很容易被下载和非法使用;许多产商的最终用户许可协议还没有更新以允许字体链接。这使得字体开发商和字体销售商非常担心Web上的字体链接。
2、Cufon
利用Cufon可以用所选的 字体显示HTMl,而不需要使用任何图像或@font-face。
使用Cufon的过程如下:
(1)到Cufon网站下载Cufon脚本文件。
(2)使用Cufon生成器上传所选的字体。
Cufon生成器部分截图如下:
(3)在文档头中,添加对Cufon脚本和生成器提供的字体脚本的引用,比如:
还应该在body结束标签前添加以下代码,以避免在IE中出现闪烁问题:
另外,还应该在文档开头指定哪些HTML元素或选择器应该替换为你的字体,比如:
或
(4)如果在使用Cufon的网站上使用jQuery等JavaScript框架,Cufon会利用框架的选择器引擎,因此可以指定特有的选择器,比如:
(5)在css文件中,按与其他文本相同的方式,修改由Cufon替换的文本的样式——例如:color:#333;、font-size:12px;、text-transform:uppercase;等。
这样就可以啦。(注意,在许可协议方面Cufon与@font-face面对相同的问题——所选文字的EULA必须允许在Web上进行字体嵌入。)
1、@font-face
使用@font-face可以这样做:
@font-face{ font-family:"Garamod Premier Pro"; src:url(fonts/GaramondPremrPro.otf); }
然后,按我们已经习惯的做法引用font-family:
h1{ font-family:"Garamod Premier Pro",serif; }
这样,就可以在网站设计中使用你拥有的字体啦。
但是,事情其实那么简单,@font-face存在着几个缺点。(1)浏览器支持问题,一些低版本浏览器并不支持@font-face,IE6只支持.eot(EmbeddedOpenType)格式。(2)字体文件存诸在网站上,允许公共访问,很容易被下载和非法使用;许多产商的最终用户许可协议还没有更新以允许字体链接。这使得字体开发商和字体销售商非常担心Web上的字体链接。
2、Cufon
利用Cufon可以用所选的 字体显示HTMl,而不需要使用任何图像或@font-face。
使用Cufon的过程如下:
(1)到Cufon网站下载Cufon脚本文件。
(2)使用Cufon生成器上传所选的字体。
Cufon生成器部分截图如下:
(3)在文档头中,添加对Cufon脚本和生成器提供的字体脚本的引用,比如:
<script src="js/cufon-yui.js"></script> <script src="js/Museo_400.font.js"></script>
还应该在body结束标签前添加以下代码,以避免在IE中出现闪烁问题:
<script>Cufon.now();</script>
另外,还应该在文档开头指定哪些HTML元素或选择器应该替换为你的字体,比如:
<script> Cufon.replace('h1'); </script>
或
<script> Cufon.replace('h1')('h2')('blockquote'); </script>
(4)如果在使用Cufon的网站上使用jQuery等JavaScript框架,Cufon会利用框架的选择器引擎,因此可以指定特有的选择器,比如:
<script> Cufon.replace('#header h2,#header ul a'); </script>
(5)在css文件中,按与其他文本相同的方式,修改由Cufon替换的文本的样式——例如:color:#333;、font-size:12px;、text-transform:uppercase;等。
这样就可以啦。(注意,在许可协议方面Cufon与@font-face面对相同的问题——所选文字的EULA必须允许在Web上进行字体嵌入。)
相关文章推荐
- Android Service
- Fragment使用时的一些Tips
- [Error]分布式部署SCOM安装报错——Report Services实例无效
- 分析-外星人计算Pi的程序
- Android总结篇系列:Android广播机制
- Web前端工程师-优秀简历汇总
- java中main方法详解
- 网络爬虫-理解
- ICE流传输
- 使用AndroidStudio一分钟实现Navigation Drawer 导航抽屉效果
- Android取消EditText自动获取焦点默认行为
- hdu 1430 魔板(bfs+预处理+康托展开)
- 数据库分页查询的方法
- CentOS VI常用命令
- 使用navigator.userAgent来判断浏览器类型
- 五种控制Android应用的权限的方法
- Xcode7无须开发者账号进行真机调试
- 回文数
- eclipse安装插件提示Duplicate Location错误的解决办法
- 页面传值