@font-face

今天总结一下font-face这个属性,font-face他可以将字体嵌入到web页面中。也就是说即使用户电脑中没有你定义的特殊字体也不用担心样式会显示不出来。font-face属性他自身有着很好的兼容性,兼容全部浏览器~看到这里是不是觉得font-face没有兼容问题了呢?非也非也,咱们还是从头看看吧。

一.语法

@font-face {
   font-family: <YourWebFontName>;
   src: <source> [<format>][,<source> [<format>]]*;
   [font-weight: <weight>];
   [font-style: <style>];
 }

1.YourWebFontName:此值指的就是你自定义的字体名称,最好是使用你下载的默认字体,他将被引用到你的Web元素中的font-family。如“font-family:"YourWebFontName";”

2.source:此值指的是你自定义的字体的存放路径,可以是相对路径也可以是绝路径;

3.format:此值指的是你自定义的字体的格式,主要用来帮助浏览器识别,其值主要有以下几种类型:truetype,opentype,truetype-aat,embedded-opentype,avg等;

4.weight和style:这两个值大家一定很熟悉,weight定义字体是否为粗体,style主要定义字体样式,如斜体。

二.兼容

前面说过font-face自身没有兼容问题,他的兼容问题出在字体格式上。我们常用的字体格式有这5种,TureTpe(.ttf)格式,OpenType(.otf)格式,Web Open Font Format(.woff)格式,Embedded Open Type(.eot)格式,SVG(.svg)格式。

这里咱们直接介绍解决兼容的写法了~

@font-face {	font-family: ‘YourWebFontName‘;	src: url(‘YourWebFontName.eot‘); /* IE9 Compat Modes */	src: url(‘YourWebFontName.eot?#iefix‘) format(‘embedded-opentype‘), /* IE6-IE8 */             url(‘YourWebFontName.woff‘) format(‘woff‘), /* Modern Browsers */             url(‘YourWebFontName.ttf‘)  format(‘truetype‘), /* Safari, Android, iOS */             url(‘YourWebFontName.svg#YourWebFontName‘) format(‘svg‘); /* Legacy iOS */   }

ok,只要这样写兼容就没啥问题了~

为了解决兼容问题能看到咱们用了4种字体格式,这也是个问题。平常在网上找字体能找到一种就不错了去哪找其他3种啊。不用担心,咱们接着向下看。

三.字体的生成

对于字体格式的问题咱们只要借助fontsquirrel这个网站就ok了。

http://www.fontsquirrel.com/tools/webfont-generator

使用方法如下:

第一步:添加想转换的字体。

第二步:设置参数下载

ok,字体格式问题解决了~

四.实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>@font-face demo1</title>
    <style>
        *{margin:0;padding:0;}
        @font-face {
            font-family:‘chen‘;
            src: url(‘font/caricature/caricature-webfont.eot‘);
            src: url(‘font/caricature/caricature-webfont.eot?#iefix‘) format(‘embedded-opentype‘),
                     url(‘font/caricature/caricature-webfont.woff‘) format(‘woff‘),
                     url(‘font/caricature/caricature.ttf‘)  format(‘truetype‘),
                     url(‘font/caricature/caricature-webfont.svg#caricature-webfont‘) format(‘svg‘);
       }
       .chen{font-family:‘chen‘;font-size:100px;}
    </style>
</head>
<body>
    <p class="chen">chen</p>
</body>
</html>

五.性能

对于font-face的性能问题,如果你做的是英文网站,或者英文的特殊字体比较多。那么利用font-face属性来实现效果是个不错的选择。如果字体效果是中文字体,那我劝你还是用图片好了。中文字体的体积比较大会对网站性能产生影响。

PS:

关于字体格式以及浏览器对字体的支持程度表:


format 格式


Font 格式


后缀名


truetype


TrueType


.ttf


opentype


OpenType


.ttf, .oft


truetype-aat


TrueType with Apple Advanced Typography extensions


.ttf


embedded-opentype


Embedded OpenType


.eot


svg


SVG Font


.svg, .svgz


浏览器


支持类型


IE6,7,8


仅支持 Embedded OpenType(.eot) 格式。


Firefox 3.5


支持 TrueType、OpenType(.ttf, .otf) 格式。


Firefox 3.6


支持 TrueType、OpenType(.ttf, .otf) 及 WOFF 格式。


Chrome,Safari,Opera


支持 TrueType、OpenType(.ttf, .otf) 及 SVG Font(.svg) 格式。

转自:http://wqf1992.blog.163.com/blog/static/23389807920148514353139/

时间: 2024-10-22 02:08:17

@font-face的相关文章

Bootstrap &amp; Font Awesome 学习笔记

学习网站:http://bootstrap.ninghao.net/index.html https://www.freecodecamp.cn http://www.runoob.com/bootstrap/bootstrap-tutorial.html Bootstrap 为快速简单的实施 Web 开发准备的前端架构. Bootstrap将会根据你的屏幕的大小来调整HTML元素的大小 -- 强调 响应式设计的概念. 通过响应式设计,你无需再为你的网站设计一个手机版的.它在任何尺寸的屏幕上看起

awt.font在centos上中文乱码的问题

现在有需求生成一个二维码,并且有一段文本说明,但是使用awt.font来生成中文时,一直存在乱码的问题.网上的解决办法有几种,但是在centos上亲测有用的就是如下的方法. Java代码如下:new java.awt.Font("宋体",Font.BOLD,13); 1,从windows上拷贝simsun.ttc宋体文件(有的说改后缀为ttf,没有试),拷贝到/usr/share/fonts下,可以新建一个文件夹,比如我创建的是chinese,即路径为/user/share/fonts

font not embeded

转自:http://blog.csdn.net/chenyusiyuan/article/details/4078671,感谢分享! 装了半天adobe acrobat distiller 要泪崩,解决问题还是要找对出错关键地方啊~~~?? 今天投稿一个IEEE会议时遇到了一个不大不小的问题,在指定的论文提交网站进行格式检查(PDF Test)时,总是在字体嵌入那一项提示错误: Font embedding Fonts that are not embedded may be rendered

【codecademy summary】html+css font

The default typeface for all HTML elements is TImes New Roman. exmaple as use of font typeface:  font-family: "Courier New"; Two different typefaces of types as: 1.Serif - traditionally used in print designs, as they have been considered easier

让Flying saucer支持font定义

在wangEditor里给某段字体加上颜色后,在生成的PDF里无法体现出来,只好打开flying saucer的源码debug,发现XhtmlNamespaceHandler类中没有对font元素的处理,于是依样画瓢: public String getNonCssStyling(Element e) { if (e.getNodeName().equals("table")) { return applyTableStyles(e); } else if (e.getNodeName

1 background(复合属性)与font(复合属性) 2 行内块的间距问题 3 行内元素的margin 4 清除浮动 5定位的元素的层级 6 Border-radius: 边框半径

1 background(复合属性)与font(复合属性): background: 颜色  图片的链接  是否平铺  背景位置 是否滚动.(可以随意调动或省略) Font: 粗度 字体风格 字体大小/行高 字体样式 字体大小和样式不可省略 2 行内块的间距问题 行内块元素相邻时,行内块元素之间会有几像素的间距,只有通过浮动解决. 3 行内元素的margin 行内元素的上下外边距不起作用,左右起作用. 4 清除浮动 给父盒子设置一个高度     Clear: both      Overflow

关于移动端的font的大小问题

一.font-family 使用无衬线字体 body { font-family: "Helvetica Neue", Helvetica, STHeiTi, sans-serif; } iOS 4.0+ 使用英文字体 Helvetica Neue,之前的iOS版本降级使用 Helvetica 中文字体设置为华文黑体STHeiTi 默认数字字体是Helvetica Neue 需补充说明,华文黑体并不存在iOS的字体库中(http://support.apple.com/kb/HT587

font:12px/1.5 tahoma, arial, \5b8b\4f53, sans-serif详解

在phpcms v9的样式表文件reset.css中有如下一段样式,具体什么意思?代码如下:body,html,input{font:12px/1.5 tahoma,arial,\5b8b\4f53,sans-serif;} 解释:这是css中font的简写写法.字体:字体大小/字体行高 字体格式. 详写如下:body,html,input{font: 12px;line-height: 1.5;font-family: tahoma,arial,\5b8b\4f53,sans-serif;}

如何将 Font Awesome 转成 PNG 图标 详细教程 含源代码

最近因为项目上需要用到这个字体图标,但是它里面的许多也不能完全满足项目需要,因此就考虑将这个图标导出,然后自己再添加一些其他图标使用 搜索了些解决方案,如:http://www.oschina.net/translate/how-to-convert-font-awesome-to-png-icons,但是上面的步骤过于简单,一个新手完全不会使用,比如Python自己就一点都没接触过,因此自己走了许多弯路. 本文一方面记录以便以后自己再次使用,最重要的是将我自己的每个步骤详细的展现给有需要的大家

字体图标 Icon font

Icon font Icon font 指的是用字体文件取代图片文件,来展示图标.特殊字体等元素的方法. 应用场景: Icon Font的优缺点 大小可以自由地变化 颜色可以自由地修改 添加阴影效果 *IE6也可以支持 支持一些CSS3对文字的效果 字体文件比图片文件小很多 由于是字体,所以只可以显示纯色图片,不支持多种颜色的图片(缺点) 资源: 阿里icon font字库 这个是阿里妈妈M2UX的一个icon font字体图标字库,包含了淘宝图标库和阿里妈妈图标库. fontello 在线定制