@font-face制作Web Icon

转载 2014年12月09日 11:25:44

@font-faceCSS3中有关于字体设置的属性,通过@font-face可以将本地字体设置为Web页面字体,并能兼容所有浏览器,使用这个属性就不必担心用户本地不具备这样的字体。因为我们把字体都上传到服务器上,不过这样一来很多人担心影响性能问题。鱼和熊掌不能兼得嘛,我们就不在为这个问题说太多的话了,不过我今天要与大家分享的主题和这个@font-face还是有很在关系的,使用他配合一定的字体来制作Web页面中的Icon图标。初一看有点不实际,以前的Icon都是依靠图片来完成,怎么可能用字体就能实现呢?如果你以前有用过HTML的实体符,我想就不会那么惊奇了。


如果你以前关注过本站,我想这个你并不会陌生,因为我在css3制作3D分页导航一文中就有用到@font-face来制作icon的效果:

今天我想和大家进一步的探讨这方面的应用,同时为大家准备了多种字体制作Icon的效果,下面我们一起来看看吧。

制作思路

思路其实很清晰,我们就是需要得到font icon的字体,然后通过@font-face将这个字体运用到一定的字符上,从而让他渲染出来是ICON的效果。难就难在无法得到这样的字体,今天我给大家搜集了三种免费的字体,以供大家学习。接下来我们一起来学习这三种字体如何转换成Web上的Icon图标。

第一种:Guifx字体

要使用Guifx字体制作Icon,你首先要得到相应的字体,然后通过fontsquirrel转换各浏览器所需的字体,详细的操作过程大家可以参考@font-face

字体得到了就好办了,现在只需要使用一定的编码来代表相应的字符,打个比方来说:

		<div class="icon">A</div>
	

那么上面的“A”字符代表的就是一个Icon,只不过我们需要把刚才得到字体运用上去:

		@font-face {
    font-family: 'GuifxIcon';
    src: url('Guifx/guifx_v2_transports-webfont.eot');
    src: url('Guifx/guifx_v2_transports-webfont.eot?#iefix') format('embedded-opentype'),
    url('Guifx/guifx_v2_transports-webfont.woff') format('woff'),
    url('Guifx/guifx_v2_transports-webfont.ttf') format('truetype'),
    url('Guifx/guifx_v2_transports-webfont.svg#Guifxv2TransportsRegular') format('svg');
    font-weight: normal;
    font-style: normal;
    }
    .icon {
    font-family: 'GuifxIcon';
    }
	

这样运用过后,"A"在web中就渲染成下图的icon效果:

上面拿了一个简单的Icon来做实例,其他的运用也是这样的,下面我将对应的字符和Icon对照表放上来让大家使用时好参考,省得测试的时间:

有关于详细的代码大家可以查看这里,当然你可以点击下载相关字体和代码。

第二种:websymbols字体

这种字体其实运用和前面介绍的方法是一样的,唯一区别是使用的字体不一样,从而字母渲染出来的Icon也就不一样了。下面我们同样来看“A”渲染出来的效果

		<div class="icon">A</div>
	

样式的使用:

		@font-face{ 
			font-family: 'WebSymbolsRegular';
			src: url('websymbols/fonts/websymbols-regular-webfont.eot');
			src: url('websymbols/fonts/websymbols-regular-webfont.eot?#iefix') format('embedded-opentype'),
					 url('websymbols/fonts/websymbols-regular-webfont.woff') format('woff'),
					 url('websymbols/fonts/websymbols-regular-webfont.ttf') format('truetype'),
					 url('websymbols/fonts/websymbols-regular-webfont.svg#WebSymbolsRegular') format('svg');
		}
		.icon {
    font-family: 'WebSymbolsRegular';
    }
	

对应出来的Icon就是下图的样子了:

我想大家肯定也在头痛字体的来源吧,不急,点这里下载吧。同样给大家附上相应的字符照图,以供大家参考:

有关于详细的代码大家可以查看这里,当然你可以点击下载相关字体和代码。

第三种:Font Awesome

Font Awesome是一个强大的字体制作Icon的案例,作者在Bootstrap Icon的基础上将Icon图片换成了字体来制作。初看真的让我汗颜呀,太强大了。下面我们一起来看看如何使用?

HTML Markup

		 <div class="icon-glass"></div>
	

相对来说这个字体制作ICON复杂一点,他是在Bootstrap Icon基础上扩展的,只不过区别是Bootstrap Icon采用的是IMG,而他采用的是@font-face:

		@font-face {
  font-family: 'FontAwesome';
  src: url('font/fontawesome-webfont.eot');
  src: url('font/fontawesome-webfont.eot?#iefix') format('embedded-opentype'), url('../font/fontawesome-webfont.woff') format('woff'), url('../font/fontawesome-webfont.ttf') format('truetype'), url('../font/fontawesome-webfont.svgz#FontAwesomeRegular') format('svg'), url('../font/fontawesome-webfont.svg#FontAwesomeRegular') format('svg');
  font-weight: normal;
  font-style: normal;
}
/* sprites.less reset */
[class^="icon-"], 
[class*=" icon-"] {
  display: inline;
  width: auto;
  height: auto;
  line-height: inherit;
  vertical-align: baseline;
  background-image: none;
  background-position: 0% 0%;
  background-repeat: repeat;
}
[class^="icon-"]:before, 
[class*=" icon-"]:before {
  font-family: FontAwesome;
  font-weight: normal;
  font-style: normal;
  display: inline-block;
  text-decoration: inherit;
}
/*  Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
    readers do not read off random characters that represent icons */
.icon-glass:before              { content: "\f000"; }
.icon-music:before              { content: "\f001"; }
.icon-search:before             { content: "\f002"; }
.icon-envelope:before           { content: "\f003"; }
.icon-heart:before              { content: "\f004"; }
.icon-star:before               { content: "\f005"; }
.icon-star-empty:before         { content: "\f006"; }
.icon-user:before               { content: "\f007"; }
.icon-film:before               { content: "\f008"; }
.icon-th-large:before           { content: "\f009"; }
.icon-th:before                 { content: "\f00a"; }
.icon-th-list:before            { content: "\f00b"; }
.icon-ok:before                 { content: "\f00c"; }
.icon-remove:before             { content: "\f00d"; }
.icon-zoom-in:before            { content: "\f00e"; }

.icon-zoom-out:before           { content: "\f010"; }
.icon-off:before                { content: "\f011"; }
.icon-signal:before             { content: "\f012"; }
.icon-cog:before                { content: "\f013"; }
.icon-trash:before              { content: "\f014"; }
.icon-home:before               { content: "\f015"; }
.icon-file:before               { content: "\f016"; }
.icon-time:before               { content: "\f017"; }
.icon-road:before               { content: "\f018"; }
.icon-download-alt:before       { content: "\f019"; }
.icon-download:before           { content: "\f01a"; }
.icon-upload:before             { content: "\f01b"; }
.icon-inbox:before              { content: "\f01c"; }
.icon-play-circle:before        { content: "\f01d"; }
.icon-repeat:before             { content: "\f01e"; }

/* \f020 is not a valid unicode character. all shifted one down */
.icon-refresh:before            { content: "\f021"; }
.icon-list-alt:before           { content: "\f022"; }
.icon-lock:before               { content: "\f023"; }
.icon-flag:before               { content: "\f024"; }
.icon-headphones:before         { content: "\f025"; }
.icon-volume-off:before         { content: "\f026"; }
.icon-volume-down:before        { content: "\f027"; }
.icon-volume-up:before          { content: "\f028"; }
.icon-qrcode:before             { content: "\f029"; }
.icon-barcode:before            { content: "\f02a"; }
.icon-tag:before                { content: "\f02b"; }
.icon-tags:before               { content: "\f02c"; }
.icon-book:before               { content: "\f02d"; }
.icon-bookmark:before           { content: "\f02e"; }
.icon-print:before              { content: "\f02f"; }

.icon-camera:before             { content: "\f030"; }
.icon-font:before               { content: "\f031"; }
.icon-bold:before               { content: "\f032"; }
.icon-italic:before             { content: "\f033"; }
.icon-text-height:before        { content: "\f034"; }
.icon-text-width:before         { content: "\f035"; }
.icon-align-left:before         { content: "\f036"; }
.icon-align-center:before       { content: "\f037"; }
.icon-align-right:before        { content: "\f038"; }
.icon-align-justify:before      { content: "\f039"; }
.icon-list:before               { content: "\f03a"; }
.icon-indent-left:before        { content: "\f03b"; }
.icon-indent-right:before       { content: "\f03c"; }
.icon-facetime-video:before     { content: "\f03d"; }
.icon-picture:before            { content: "\f03e"; }

.icon-pencil:before             { content: "\f040"; }
.icon-map-marker:before         { content: "\f041"; }
.icon-adjust:before             { content: "\f042"; }
.icon-tint:before               { content: "\f043"; }
.icon-edit:before               { content: "\f044"; }
.icon-share:before              { content: "\f045"; }
.icon-check:before              { content: "\f046"; }
.icon-move:before               { content: "\f047"; }
.icon-step-backward:before      { content: "\f048"; }
.icon-fast-backward:before      { content: "\f049"; }
.icon-backward:before           { content: "\f04a"; }
.icon-play:before               { content: "\f04b"; }
.icon-pause:before              { content: "\f04c"; }
.icon-stop:before               { content: "\f04d"; }
.icon-forward:before            { content: "\f04e"; }

.icon-fast-forward:before       { content: "\f050"; }
.icon-step-forward:before       { content: "\f051"; }
.icon-eject:before              { content: "\f052"; }
.icon-chevron-left:before       { content: "\f053"; }
.icon-chevron-right:before      { content: "\f054"; }
.icon-plus-sign:before          { content: "\f055"; }
.icon-minus-sign:before         { content: "\f056"; }
.icon-remove-sign:before        { content: "\f057"; }
.icon-ok-sign:before            { content: "\f058"; }
.icon-question-sign:before      { content: "\f059"; }
.icon-info-sign:before          { content: "\f05a"; }
.icon-screenshot:before         { content: "\f05b"; }
.icon-remove-circle:before      { content: "\f05c"; }
.icon-ok-circle:before          { content: "\f05d"; }
.icon-ban-circle:before         { content: "\f05e"; }

.icon-arrow-left:before         { content: "\f060"; }
.icon-arrow-right:before        { content: "\f061"; }
.icon-arrow-up:before           { content: "\f062"; }
.icon-arrow-down:before         { content: "\f063"; }
.icon-share-alt:before          { content: "\f064"; }
.icon-resize-full:before        { content: "\f065"; }
.icon-resize-small:before       { content: "\f066"; }
.icon-plus:before               { content: "\f067"; }
.icon-minus:before              { content: "\f068"; }
.icon-asterisk:before           { content: "\f069"; }
.icon-exclamation-sign:before   { content: "\f06a"; }
.icon-gift:before               { content: "\f06b"; }
.icon-leaf:before               { content: "\f06c"; }
.icon-fire:before               { content: "\f06d"; }
.icon-eye-open:before           { content: "\f06e"; }

.icon-eye-close:before          { content: "\f070"; }
.icon-warning-sign:before       { content: "\f071"; }
.icon-plane:before              { content: "\f072"; }
.icon-calendar:before           { content: "\f073"; }
.icon-random:before             { content: "\f074"; }
.icon-comment:before            { content: "\f075"; }
.icon-magnet:before             { content: "\f076"; }
.icon-chevron-up:before         { content: "\f077"; }
.icon-chevron-down:before       { content: "\f078"; }
.icon-retweet:before            { content: "\f079"; }
.icon-shopping-cart:before      { content: "\f07a"; }
.icon-folder-close:before       { content: "\f07b"; }
.icon-folder-open:before        { content: "\f07c"; }
.icon-resize-vertical:before    { content: "\f07d"; }
.icon-resize-horizontal:before  { content: "\f07e"; }

.icon-bar-chart:before          { content: "\f080"; }
.icon-twitter-sign:before       { content: "\f081"; }
.icon-facebook-sign:before      { content: "\f082"; }
.icon-camera-retro:before       { content: "\f083"; }
.icon-key:before                { content: "\f084"; }
.icon-cogs:before               { content: "\f085"; }
.icon-comments:before           { content: "\f086"; }
.icon-thumbs-up:before          { content: "\f087"; }
.icon-thumbs-down:before        { content: "\f088"; }
.icon-star-half:before          { content: "\f089"; }
.icon-heart-empty:before        { content: "\f08a"; }
.icon-signout:before            { content: "\f08b"; }
.icon-linkedin-sign:before      { content: "\f08c"; }
.icon-pushpin:before            { content: "\f08d"; }
.icon-external-link:before      { content: "\f08e"; }

.icon-signin:before             { content: "\f090"; }
.icon-trophy:before             { content: "\f091"; }
.icon-github-sign:before        { content: "\f092"; }
.icon-upload-alt:before         { content: "\f093"; }
.icon-lemon:before              { content: "\f094"; }
	

有关详细的使用大家可以点击官网。下图是部分类名对应的icon图标

这个比较有名气的使用方法,也是一个开源的宝贝,大家可以通过多种路径下载到相应的源码,然后按其api运用到你的项目中。如果你对这个感兴趣可以点击这里下载所需文件和源码。或者到Github上查和下载所有源码。

上面给大家介绍了三种字体,配合@font-face制作web icon方法,希望对大家以后的运用上有所帮助。

如需转载烦请注明出处:W3CPLUS

网页使用Font Awesome图标字体时,css定义 content 属性

网页使用Font Awesome图标字体时,css定义 content 属性必不可少,如下所示: .icon:before {     content: '\f005';     font-...
  • zsg88
  • zsg88
  • 2017-03-21 22:54:39
  • 7707

CSS3利用@font-face使用自定义字符和图标

前言今天在看wordpress主题的时候,看到一个`class`名为`fa fa-weibo` 当时想知道这是什么用法,然后就找了一下style.css 文件,看看具体的CSS内容,然后发现这是一个很...
  • u011675745
  • u011675745
  • 2016-10-05 20:37:32
  • 3270

自定义Font Icon

前段时间在《@font-face制作Web Icon》一文收集了三种webfont通过CSS3的@font-face来制作Icon图标。现在在网上最为流行的是@robmadole和@supercode...
  • gxchen0802
  • gxchen0802
  • 2013-07-02 14:19:38
  • 4418

直接在 CSS 中引用 FONTAWESOME 图标(附码表)

因此我们如果不想用 Fontawesome 提供的类,只想在 css 里面引用图标的话,可以这样子,请自行脑补: .icon:before { content: '\f006'; f...
  • fuzhenglai
  • fuzhenglai
  • 2016-02-15 16:06:13
  • 10572

直接调用的CSS超级棒的哦,用过才知道,整理好久才整理出来的,下一篇会发使用说明

html{margin:0;padding:0;border:0;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-webkit-tap...
  • kfttdawv
  • kfttdawv
  • 2015-09-16 11:07:37
  • 2623

矢量图标字体自定义li编号样式

li的编号样子实在太少太难看了,如果用list-style-image的方式,当屏幕尺寸变化的时候,图片尺寸不会改变。目前最好的方案还是用矢量图标字体。 原理很简单,一看代码就明白了。 ...
  • wuyt2008
  • wuyt2008
  • 2016-12-07 16:54:05
  • 918

webfont应用系列 如何制作图标字体?

最近在评估font-face是否可以用在邮箱的实际开发中,第一步就是做矢量图标(字体图标要矢量),如何把位图图标转为矢量? 1、用PS转为纯色:PS打开图标,上色(黑色),如果原图不是纯色,则需...
  • huoniu007
  • huoniu007
  • 2015-10-22 15:55:07
  • 624

利用CSS3 @font-face使用图标字体

CSS3可以通过@font-face使用自定义字体,这是让前端工程师拍手称赞的一件事情。在CSS3之前,前端页面的字体只能使用设备中已经安装好的字体。@font-face 可以让前端工程师随心所欲的使...
  • licaomengRICE
  • licaomengRICE
  • 2015-11-26 18:24:24
  • 6083

html特殊字符 编码css3 content:"我是特殊符号"

项目中用到的一些特殊字符和图标 html代码 div class="cross">div> css代码 .cross{ width: 20px; heigh...
  • u013261261
  • u013261261
  • 2015-03-23 13:18:58
  • 8227

font-awesome的使用及其属性content

一.font-awesome的使用 1官网下载源码: 2对于font-awesome引用应注意的点 2.1将完整的font-awesome文件夹先置于项目文件夹内再在font-awesome内引用fo...
  • weixin_37565909
  • weixin_37565909
  • 2017-07-03 21:39:44
  • 95
收藏助手
不良信息举报
您举报文章:@font-face制作Web Icon
举报原因:
原因补充:

(最多只允许输入30个字)