通常网页上不能使用一些特殊字体,否则浏览者可能无法正确浏览到,虽然我们可以通过图片,flash、SIFR等技术来实现网页使用特殊字体,
但是这都有个严重的缺点:不利于SEO。
下面介绍一种非常有利于SEO的特殊字体应用方法:在CSS中通过@font-face属性来实现网页中嵌入特殊字体。
第一步、
获取要使用字体的三种文件格式,确保能在主流浏览器中都能正常显示该字体。
.EOT,适用于Internet Explorer 4.0+
.TTF或.OTF,适用于Firefox 3.5、Safari、Opera
.SVG,适用于Chrome、IPhone
最常见的是.TTF文件,我们需要通过这种文件格式转换为其余两种文件格式。可以通过网站http://onlinefontconverter.com/或者
http://www.fontsquirrel.com/fontface/generator 或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 style="font-family: fontNameRegular">这是你的文字内容-懒人建站</p>
说到浏览器对@font-face的兼容问题,这里涉及到一个字体format的问题,因为不同的浏览器对字体格式支持是不一致的,这样大家有必要了解一下,各种版本的浏览器支持什么样的字体,前面也简单带到了有关字体的几种格式,下面我就分别说一下这个问题,让大家心里有一个概念:
一、TureTpe(.ttf)格式:
.ttf字体是Windows和Mac的最常见的字体,是一种RAW格式,因此他不为网站优化,支持这种字体的浏览器有【IE9+,Firefox3.5+,Chrome4+,Safari3+,Opera10+,iOS Mobile Safari4.2+】;
二、OpenType(.otf)格式:
.otf字体被认为是一种原始的字体格式,其内置在TureType的基础上,所以也提供了更多的功能,支持这种字体的浏览器有【Firefox3.5+,Chrome4.0+,Safari3.1+,Opera10.0+,iOS Mobile Safari4.2+】;
三、Web Open Font Format(.woff)格式:
.woff字体是Web字体中最佳格式,他是一个开放的TrueType/OpenType的压缩版本,同时也支持元数据包的分离,支持这种字体的浏览器有【IE9+,Firefox3.5+,Chrome6+,Safari3.6+,Opera11.1+】;
四、Embedded Open Type(.eot)格式:
.eot字体是IE专用字体,可以从TrueType创建此格式字体,支持这种字体的浏览器有【IE4+】;
五、SVG(.svg)格式:
.svg字体是基于SVG字体渲染的一种格式,支持这种字体的浏览器有【Chrome4+,Safari3.1+,Opera10.0+,iOS Mobile Safari3.2+】。
这就意味着在@font-face中我们至少需要.woff,.eot两种格式字体,甚至还需要.svg等字体达到更多种浏览版本的支持。
@font-face {
font-family: 'MyWebFont';
src: url('webfont.eot'); /* IE9 Compat Modes */
src: url('webfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('webfont.woff') format('woff'), /* Modern Browsers */
url('webfont.ttf') format('truetype'), /* Safari, Android, iOS */
url('webfont.svg#svgFontName') format('svg'); /* Legacy iOS */
}
网络字体(Web font)的效率
你需要注意的是,字体文件的体积可能非常的大,而且需要额外的HTTP连接,这些都会降低网站页面的加载速度。所以,在使用网络字体@font-face
前,你需要清楚它的利与弊,判断网络字体是否真的有必要用在你的网站页面上。
如果你决定使用个性化自定义字体,可以采用一个非常灵活的方法,就是只加载尽量少的字体字符数和尽量少的字体风格(粗体/斜体)。例如,如果你使用谷歌字体,你可以只加载指定的字体风格组合:
@import url(http://fonts.googleapis.com/css?family=Averia+Sans+Libre:400,300italic,700);