在CSS中通过@font-face属性来实现网页中嵌入特殊字体。
首先获取要使用字体的三种文件格式.EOT、.TTF或.OTF、.SVG,确保能在主流浏览器中都能正常显示该字体。
.EOT,适用于Internet Explorer 4.0+
.TTF或.OTF,适用于Firefox 3.5、Safari、Opera
.SVG,适用于Chrome、IPhone
最常见的是.TTF文件,需要通过这种文件格式转换为其余两种文件格式。
在css中进行如下声明:
@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替换为你的字体名称*/
在css中使用这个字体
h1{font-family: fontNameRegular}
CSS中可以使用font-face属性即可实现调用任何外部等特殊字体。
font-face属性介绍及其实例:
对浏览器的支持:
Firefox、Chrome、Safari 以及 Opera 支持 .ttf (True Type Fonts) 和 .otf (OpenType Fonts) 类型的字体。
Internet Explorer 9+ 支持新的 font-face 规则,但是仅支持 .eot 类型的字体 (Embedded OpenType)。
使用您需要的字体。
在新的 font-face 规则中,您必须首先定义字体的名称(比如 myFirstFont),然后指向该字体文件。
如需为 HTML 元素使用字体,请通过 font-family 属性来引用字体的名称 (myFirstFont):
使用粗体字体。
您必须为粗体文本添加另一个包含描述符的 @font-face。
文件 "aa.ttf" 是另一个字体文件,它包含了 Sansation 字体的粗体字符。
只要 font-family 为 "myFirstFont" 的文本需要显示为粗体,浏览器就会使用该字体。
通过这种方式,我们可以为相同的字体设置许多 @font-face 规则。
实际案例:
案例1: <style>@font-face
{
font-family: myFirstFont
src: url('aa.ttf'),
url('aa.eot') /* IE9+,可以是具体的实际链接 */
}
div
{
font-family:myFirstFont
}
</style> 案例2: @font-face
{
font-family: myFirstFont
src: url('aa.ttf'),
url('aa.eot') /* IE9+ */
font-weight:bold
}
注意事项:
A、Internet Explorer 8 以及更早的版本不支持新的 font-face 规则。
B、代码中注意负符号,均为英文状态下。
C、字体文件格式必须添加后缀,且链接中必须带后缀。
这是个随机字串,如果没有这个,那么浏览器每次都会从缓存中读取字体文件(除非网页是首次运行);而如果有了这个字串,浏览器就会认为这是个新的url,就会重新从网上下载这个字体文件而不是从缓存中读取;当然,如果下下次这个字串没有变化,那么浏览器仍然会从缓存中去读取的。所以这种技术通常用于网页
数据文件
的版本有变化时可以让浏览器立刻使用新版本的内容及代码,比如说js文件和css文件,修改后再上传到网站,用户在网页上是不会立刻看到修改后的效果的,必须等
浏览器缓存
的生命周期到期(或者让用户手动清理缓存)后才会更新,遇到这种情况,网页设计者就可以在文件名的后面加个问号再加个随机的字符串,用户只要一刷新网页就可以立刻看到新效果了。
不过像字体文件这种通常都是没什么变化的,所以并不适合用这种更新技术,尽量让浏览器直接从缓存中读取即可,这样可以加快网页的加载速度,提高效率。也就是说你把问号以及后面的一大串字符都删掉也是没问题的。
至于如何实现,你可以利用前端或后台脚本来生成随机字符串并拼接到文件路径的后面(用问号分隔)来实现这种效果。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)