博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在网页中嵌入任意字体的解决方案
阅读量:7039 次
发布时间:2019-06-28

本文共 2574 字,大约阅读时间需要 8 分钟。

字体使用是网页设计中不可或缺的一部分。经常地,我们希望在网页中使用某一特定字体,但是该字体并非主流操作系统的内置字体,这样用户在浏览页面的 时候就有可能看不到真实的设计。美工设计师最常做的办法是把想要的文字做成图片,这样做有几个明显缺陷:1. 不可能大范围的使用该字体;2. 图片内容相对使用文字不易修改;3. 不利于网站SEO(主流搜索引擎不会将图片alt内容作为判断网页内容相关性的有效因素)。网络上有一些使用sIFR技术、或 javascript/flash hack的方法,但实现起来或繁琐,或有缺陷。下面要讲的是如何只通过CSS的@font-face属性来实现在网页中嵌入任意字体。

第一步

获取要使用字体的三种文件格式,确保能在主流浏览器中都能正常显示该字体。

  • .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替换为你的字体名称*/

在页面中需要的地方使用该字体:

p { font: 13px fontNameRegular, Arial, sans-serif; }

h1{font-family: fontNameRegular}

或者

<p >掬水月在手,落花香满衣</p>

下面是我通过上面两步做的示例:

运行代码框

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>在网页中嵌入任意字体的完整解决方案 - CSS9.NET</title> <link rel="stylesheet" href="http://www.blueidea.com/articleimg/2009/12/7263/style.css" /> <style type="text/css"> @font-face { font-family: 'hakuyoxingshu7000Regular'; src: url('http://www.blueidea.com/articleimg/2009/12/7263/7000.eot'); src: local('hakuyoxingshu7000 Regular'), local('hakuyoxingshu7000'), url('http://www.blueidea.com/articleimg/2009/12/7263/7000.ttf') format('truetype'), url('http://www.blueidea.com/articleimg/2009/12/7263/7000.svg#hakuyoxingshu7000') format('svg'); } #poem{ font-size:45px; font-family:hakuyoxingshu7000Regular; text-align:center; } #poem p{height:30px;line-height:30px;} </style> </head> <body> <div id="testdiv"> <h1>在网页中嵌入任意字体的完整解决方案 - CSS9.NET</h1> <h2>访问原文: <a href="http://css9.net/css-font-face-solution/">http://css9.net/css- font-face-solution/</a>&nbsp;&nbsp;&nbsp;关注Web前端开发 - <a href="http://css9.net">CSS9.NET</a></h2> <div id="poem"> <h3>云为素食</h3> <p>京城有同窗,相约素食阁。</p><p>听者犹未尽,言者语已多。</p><p>满 座皆友朋,畅谈何民科。</p><p>禅中寄小语,慎言且柔和。</p> </div> </body> </html>
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

上面文中的字体用的是本博客之前发布的一款钢笔行书字体,喜欢的可以去下载。

下载该示例的源代码:

原文:

本文链接: 

转载于:https://www.cnblogs.com/ymweb/archive/2012/01/16/2323514.html

你可能感兴趣的文章
[转]Android Studio创建Xposed模块项目时BridgeApi的正确添加方式
查看>>
【hive】——Hive sql语法详解
查看>>
python 全栈开发,Day50(Javascript简介,第一个JavaScript代码,数据类型,运算符,数据类型转换,流程控制,百度换肤,显示隐藏)...
查看>>
一篇网络流的好blog
查看>>
Python基础之继承与派生
查看>>
filter、map、every函数的使用
查看>>
黑马程序员——iOS学习——UITableView表视图单元样式
查看>>
Bash基础——减号-
查看>>
Android适配文件dimen自动生成代码
查看>>
走马观花--快餐学python笔记
查看>>
jquery轻量级富文本编辑器Trumbowyg
查看>>
(二十八)static关键字
查看>>
转 MySQL数据库基础
查看>>
ubuntu 解压命令全部
查看>>
Chrome教程(一)NetWork面板分析网络请求
查看>>
第十八回  基础才是重中之重~开发人员应学会用throw
查看>>
yarn简介
查看>>
基于H5实现的react拖拽排序组件
查看>>
【Flutter 学习笔记二】Dart 的基础概念和数据类型
查看>>
zepto源码ajax模块学习
查看>>