前端学习从入门到高级全程记录之12 (CSS高级技巧)

20 篇文章 0 订阅
18 篇文章 0 订阅

学习目标

本期主要学习字体,内容较少。下一期我们将做一个京东的项目,用到的知识将会非常多,非常的有综合性。

1.Web字体

字体格式

不同浏览器所支持的字体格式是不一样的,我们有必要了解一下有关字体格式的知识。

1、TureType(.ttf)格式

.ttf字体是Windows和Mac的最常见的字体,是一种RAW格式,支持这种字体的浏览器有IE9+、Firefox3.5+、Chrome4+、Safari3+、Opera10+、iOS Mobile、Safari4.2+;

2、OpenType(.otf)格式

.otf字体被认为是一种原始的字体格式,其内置在TureType的基础上,支持这种字体的浏览器有Firefox3.5+、Chrome4.0+、Safari3.1+、Opera10.0+、iOS Mobile、Safari4.2+;

3、Web Open Font Format(.woff)格式

woff字体是Web字体中最佳格式,他是一个开放的TrueType/OpenType的压缩版本,同时也支持元数据包的分离,支持这种字体的浏览器有IE9+、Firefox3.5+、Chrome6+、Safari3.6+、Opera11.1+;

4、Embedded Open Type(.eot)格式

.eot字体是IE专用字体,可以从TrueType创建此格式字体,支持这种字体的浏览器有IE4+;

5、SVG(.svg)格式

.svg字体是基于SVG字体渲染的一种格式,支持这种字体的浏览器有Chrome4+、Safari3.1+、Opera10.0+、iOS Mobile Safari3.2+;

了解了上面的知识后,我们就需要为不同的浏览器准备不同格式的字体,通常我们会通过字体生成工具帮我们生成各种格式的字体,因此无需过于在意字体格式间的区别差异。

2. 字体图标

图片是有诸多优点的,但是缺点很明显,比如图片不但增加了总文件的大小,还增加了很多额外的“http请求”,这都会大大降低网页的性能的。更重要的是图片不能很好的进行“缩放”,因为图片放大和缩小会失真。我们后面会学习移动响应式,很多情况下希望我们的图标是可以缩放的。此时,一个非常重要的技术出现了,就是字体图标(iconfont)。

字体图标优点

可以做出跟图片一样可以做的事情,改变透明度、旋转度等等。
但本质其实是文字,可以很随意的改变颜色、产生阴影、透明效果等等。
本身体积更小,但携带的信息并没有消减。
几乎支持所有的浏览器
移动端设备必备良药。。。

字体图标使用流程

总体来说,字体图标按照如下流程:
在这里插入图片描述

设计字体图标

假如图标是我们公司单独设计,那就需要第一步了,这个属于UI设计人员的工作,他们在illustrator或SKetch这类矢量图形软件里创建icon图标,比如下图:
在这里插入图片描述
之后保存为svg格式,然后给我们前端人员就好了。

其实第一步,我们不需要关心,只需要给我们这些图标就可以了,如果图标是大众的,网上本来就有的,可以直接跳过第一步,进入第三步。

上传生成字体包

当UI设计人员给我们svg文件的时候,我们需要转换成我们页面能使用的字体文件, 而且需要生成的是兼容性的适合各个浏览器的。

推荐网站: http://icomoon.io

icomoon字库

IcoMoon成立于2011年,推出的第一个自定义图标字体生成器,它允许用户选择他们所需要的图标,使它们成一字型。 内容种类繁多,非常全面,唯一的遗憾是国外服务器,打开网速较慢。

推荐网站: http://www.iconfont.cn/

阿里icon font字库

http://www.iconfont.cn/

这个是阿里妈妈M2UX的一个icon font字体图标字库,包含了淘宝图标库和阿里妈妈图标库。可以使用AI制作图标上传生成。 一个字,免费,免费!!

fontello

http://fontello.com/

在线定制你自己的icon font字体图标字库,也可以直接从GitHub下载整个图标集,该项目也是开源的。

Font-Awesome

http://fortawesome.github.io/Font-Awesome/

这是我最喜欢的字库之一了,更新比较快。目前已经有369个图标了。

Glyphicon Halflings

http://glyphicons.com/

这个字体图标可以在Bootstrap下免费使用。自带了200多个图标。

Icons8

https://icons8.com/

提供PNG免费下载,像素大能到500PX,我们用这个。

下载兼容字体包

刚才上传完毕,网站会给我们把UI做的svg图片转换为我们的字体格式,然后下载下来就好了

当然,我们不需要自己专门的图标,是想网上找几个图标使用,以上2步可以直接忽略了,直接到刚才的网站上找喜欢的下载使用把。
在这里插入图片描述
在这里插入图片描述

字体引入到HTML

在http://glyphicons.com/这个网站下载好得到压缩包之后,最后一步,是最重要的一步了,就是字体文件已经有了,我们需要引入到我们页面中。
得到的压缩包是这样的:
在这里插入图片描述
解压之后是这样的:
在这里插入图片描述
这些文件不能删,其中有两个非常重要:
在这里插入图片描述
在这里插入图片描述

1.首先把以下4个文件放入到fonts文件夹里面。通俗的做法
在这里插入图片描述
一般fonts里都是这四个文件。完成之后,我们把fonts文件复制一份到你的项目文件夹内。

第一步:在样式里面声明字体:告诉别人我们自己定义的字体

@font-face {
  font-family: 'icomoon';
  src:  url('fonts/icomoon.eot?7kkyc2');
  src:  url('fonts/icomoon.eot?7kkyc2#iefix') format('embedded-opentype'),
    url('fonts/icomoon.ttf?7kkyc2') format('truetype'),
    url('fonts/icomoon.woff?7kkyc2') format('woff'),
    url('fonts/icomoon.svg?7kkyc2#icomoon') format('svg');
  font-weight: normal;
  font-style: normal;
}

看着很多,但是不要背,需要时复制粘贴就行。但是一定要放到style里。
HTML:

<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title></title>
		<style>
			@font-face {/*声明字体,引用字体*/
				font-family: 'icomoon';/*我们自己起名字也可以*/
				src: url('fonts/icomoon.eot?7kkyc2');
				src: url('fonts/icomoon.eot?7kkyc2#iefix') format('embedded-opentype'), 
				url('fonts/icomoon.ttf?7kkyc2') format('truetype'), 
				url('fonts/icomoon.woff?7kkyc2') format('woff'), 
				url('fonts/icomoon.svg?7kkyc2#icomoon') format('svg');
				font-weight: normal;
				font-style: normal;/*倾斜字体变正常*/
			}
		</style>
	</head>

	<body>
	  <span></span>
	</body>

</html>

第二步:给盒子使用字体

span {
		font-family: "icomoon";
	}

第三步:盒子里面添加结构

span::before {
		 content: "\e900";
	}
或者  
<span></span>  

这一步我们首先打开demo.html,并选中你想要的字体右边的“小正方形”:
在这里插入图片描述
复制粘贴到你的span中:

<body>
		<span></span>
	</body>

但是你在代码编辑器中是这样的:
在这里插入图片描述
虽然看不见,但确实存在。

然后执行效果如图:
在这里插入图片描述
记住: 字体图标是字不是图,所以可以改变大小颜色:
在这里插入图片描述
效果如图:
在这里插入图片描述

上传自己设计的图标到库

在工作中,你的公司会设计一个自己的图标。通常是这样的一个情况:美工设计一个独一无二的图标,并以svg格式发给你,然后你进入icomoom网站,导入json文件,再下载,覆盖之前的json文件就行。
下面是详细步骤:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
之后的操作就是下载解压之类的,这里就不再赘述了。

追加新图标到原来库

如果工作中,原来的字体图标不够用了,我们需要添加新的字体图标,但是原来的不能删除,继续使用,此时我们需要这样做

把压缩包里面的selection.json 重新上传,然后,选中自己想要新的图标,从新下载压缩包,替换原来文件即可。
在这里插入图片描述

2.总结

本期学习到此结束,下期是一个京东项目的练习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值