css3中的@font-face制作图标字体icofont
icofont为何物?图标字体也。图标和字体怎能混为一谈呢?icofont就是用font-family来实现icon,主要用到了css3中的@font-face。
实现我们来熟悉一下@font-face这个属性。
@font-face的语法规则:
@font-face {
font-family: <YourWebFontName>;
src: <source> [<format>][,<source> [<format>]]*;
[font-weight: <weight>];
[font-style: <style>];
}
取值说明:
- YourWebFontName:此值指的就是你自定义的字体名称,最好是使用你下载的默认字体,他将被引用到你的Web元素中的font-family。如“font-family:”YourWebFontName”;”
- source:此值指的是你自定义的字体的存放路径,可以是相对路径也可以是绝路径;
- format:此值指的是你自定义的字体的格式,主要用来帮助浏览器识别,其值主要有以下几种类型:truetype,opentype,truetype-aat,embedded-opentype,avg等;
- weight和style:这两个值大家一定很熟悉,weight定义字体是否为粗体,style主要定义字体样式,如斜体。
浏览器兼容:
浏览器兼容问题上不用太担心,‘@font-face’规则首先定义在 CSS2 规范中,但是在 CSS2.1 中被删除,目前又被纳入到 CSS3 推荐草案中,所以不用担心IE系列,从IE4开始就支持这一属性了,并且现在一些主流的浏览器(Chrome 1+/Firefox 3.5+/Safari 3.1+/iOS 3.1+/Opera 10+)也都支持。
字体格式:
说到浏览器对@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中我们至少需要.ttf,.eot两种格式字体,甚至还需要.svg等字体达到更多种浏览版本的支持。
举个栗子:
在font-face的应用中,由于中文字体文件过大,并不常用。如果需要英文字体的话,推荐大家用google的Google Web Fonts https://www.google.com/webfonts .
但可以使用font-face制作一些小图标,效果极好。
icoMoon 使用方法
推荐使用一个icofont的网站 icomoon
首先进入网站选择 icoMoon App ,start the App.
然后选择需要使用的图标,选择下一步。
最后将所需的图标重新自定义命名,下载自定义后的文件。
文件中包括了各种字体。
现在就可以使用酷酷的icofont了。
使用说明:
@font-face {font-family: 'icofoont';src: url('icofont.eot');src:url('icofont.ttf') format('truetype'); }
span{font-family: 'icofoont';font-size:30px;padding:10px;}
<div>
<span>a</span>
<span style="color:#3F5CA2">b</span>
<span style="color:#D2462F">c</span>
<span style="color:#215676">d</span>
<span style="color:#31B5F5">e</span>
<span style="color:#d6d6d6">f</span>
<span style="color:#b4ea5d">g</span>
<span style="color:#00ADEF">h</span>
<span style="color:#F47E24">i</span>
</div>