认识 Iconfont 以及什么是 .eot、.woff、.ttf、.svg「建议收藏」

认识 Iconfont 以及什么是 .eot、.woff、.ttf、.svg「建议收藏」一、Iconfont1.概述在前端作业中,二十年前只有页面中铺满文字就算上线产品,现如今,不加点俏皮的“图标”会让页面显得很Low很Low。图标在写这篇文章之前,我一直以为上图中的“图

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一、Iconfont

1. 概述

在前端作业中,二十年前只有页面中铺满文字就算上线产品,现如今,不加点俏皮的“图标”会让页面显得很 Low 很 Low。

 
认识 Iconfont 以及什么是 .eot、.woff、.ttf、.svg「建议收藏」

图标

在写这篇文章之前,我一直以为上图中的“图标”是一个个的图片组成,但学习总是给人新知,现在我知道了它们只是一种字体,类似于“宋体”、“楷体”这种。如果我们要使用它们,也只需要在 css 文件中使用 @font-face 引入这种字体即可。@font-face 是 css3 的一个语法,刚兴趣的可以自行阅读 @font-face 用法

2. Iconfont 介绍

Iconfont 是阿里提供了一个图标库,你可以想象成是一个售卖图标的超市,挑选你需要的图标放入购物车,然后 Iconfont 会为你打包你购物车里的图标,自动生成一种新的字体,你可以选择下载到本地,在你的项目中引入这种字体,这样即便没有网络的情况也可以使用图标。

这种模式的一大优点就是只挑选出需要的图标,不会像其他图标库那样直接下载一整个图标库的内容,尽管你可能只会使用到其中一到两个图标。要知道,有的项目打包上线对大小是有严格要求的,比如微信小程序打包之后的代码大小就要控制在 1 M以下。

关于如何使用 Iconfont,网络已经有人赘述的很详细了,这里就不再重复。具体步骤参阅: iconfont字体图标的使用方法

注:除了阿里的 Iconfont,Bootstrap 的图标是 Font-Awsome。

二、字体格式 —— .eot、.woff、.ttf、.svg

1. 概述

在阿里图标库中下载图标到本地后,目录结构如下:

 
认识 Iconfont 以及什么是 .eot、.woff、.ttf、.svg「建议收藏」

图标库下载到本地目录结构

第一次看到这几个文件时,不知道有什么用,可能会直接删除,但万万不可,打开 iconfont.css 文件可以在 @font-face 中都有引用这几个文件。查询资料后得知:虽然现代浏览器支持自定义字体样式,并且可以通过 @font-face 引入自定义的字体,但是各个浏览器对于字体样式是存在兼容性问题的,而这几个文件就是分别处理对应浏览兼容性问题的。

2. 字体格式介绍

目前最主要的几种网络字体(web font)格式包括WOFF,SVG,EOT,OTF/TTF。

WOFF

WOFF是Web Open Font Format几个词的首字母简写。这种字体格式专门用于网上,由Mozilla联合其它几大组织共同开发。WOFF字体通常比其它字体加载的要快些,因为使用了OpenType (OTF)和TrueType (TTF)字体里的存储结构和压缩算法。这种字体格式还可以加入元信息和授权信息。这种字体格式有君临天下的趋势,因为所有的现代浏览器都开始支持这种字体格式。【支持的浏览器:IE9+,Firefox3.5+,Chrome6+,Safari3.6+,Opera11.1+】

SVG / SVGZ

Scalable Vector Graphics (Font). SVG是一种用矢量图格式改进的字体格式,体积上比矢量图更小,适合在手机设备上使用。【支持的浏览器:Chrome4+,Safari3.1+,Opera10.0+,iOS Mobile Safari3.2+】

EOT

Embedded Open Type。这是微软创造的字体格式。这种格式只在IE6-IE8里使用。【支持的浏览器:IE4+】

OTF / TTF

OpenType Font 和 TrueType Font。部分的因为这种格式容易被复制(非法的),这才催生了WOFF字体格式。然而,OpenType有很多独特的地方,受到很多设计者的喜爱。【支持的浏览器:IE9+,Firefox3.5+,Chrome4+,Safari3+,Opera10+,iOS Mobile Safari4.2+】

3. 使用 @font-face 引入字体格式

因为各个浏览器对字体格式的不兼容,作为前端开发人员,我们需要考虑的全面性,将各个格式的字体都引入进来,这样就不怕刁钻的用户使用哪种浏览器了。

常见兼容性写法:

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

如果你是使用 Iconfont 下载字体到本地,那么恭喜你,打开 iconfont.css 文件,可以看到 Iconfont 已经帮助你配好了这些内容,你只需要在页面中引入 iconfont.css 即可直接使用。

三、参考文章

  1. 博客园 – iconfont字体图标的使用方法–超简单!
  2. Airen的博客 – CSS3 @font-face
  3. 简书 – CSS3 @font-face属性

 

喜欢这篇文章?欢迎打赏~~

认识 Iconfont 以及什么是 .eot、.woff、.ttf、.svg「建议收藏」

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167232.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月5日 下午12:00
下一篇 2022年8月5日 下午12:16


相关推荐

  • Android+jacoco实现代码覆盖率最正确的实现方式,没有之一!

    Android+jacoco实现代码覆盖率最正确的实现方式,没有之一!前言:jacoco是JavaCodeCoverage的缩写,是Java代码覆盖率统计的主流工具之一。关于jacoco的原理介绍的文章在网上有很多,感兴趣的同学可以去找别的博客看看,我这里不做赘述。它的作用是在安卓项目的代码覆盖率统计使用了jacoco的离线插桩方式,在测试前先对文件进行插桩,然后生成插过桩的class或jar包,测试(单元测试、UI测试或者手工测试等)插过桩的class和jar包后,会生成动态覆盖信息到文件,最后统一对覆盖信息进行处理,并生成报告。在我接到这个需求,需要统计开发人.

    2022年7月20日
    16
  • 将java或javaweb项目打包为jar包或war包[通俗易懂]

    将java或javaweb项目打包为jar包或war包[通俗易懂]一、为什么打包?         关于此问题,网上众说纷纭。结合个人理解以及网上说法,打成jar包,方便别人使用。如果别人运行java程序,不需要在寻找包含main方法的类去执行;如果别人使用jar包,直接在自己项目中导入jar包,而不是赋值一堆类文件。打成war包是真实生产化境,选择的web应用部署方式,网上说…

    2022年5月10日
    56
  • 2020全网最全Apache Knox实战总结

    2020全网最全Apache Knox实战总结最近一个月在研究 Apacheknox 谈不上精吧 或多或少有些心得截止目前 knox 最新版本为 1 4 实践过的版本有 1 3 1 1 1 0 HDP 下的 1 0 0 3 78 0 12 等 每个版本在组件 UI 跳转这块都有些问题 自己在 HDP3 1 下安装的 Knox 1 0 0 3 78 版本下进行修复后 形成了一个比较稳定的版本 如有需要可以私信我现在花点时间将此次 knox 之行进行总结如有问题欢迎讨论

    2026年3月20日
    2
  • Flutter jsonEncode 和 jsonDecode「建议收藏」

    Flutter jsonEncode 和 jsonDecode「建议收藏」json_decode()—-json转对象/数组通常网路请求后的数据用此方法转为我们需要的定义的对象当第二个参数为true返回array,默认是false返回object。json_encode()—-对象/数组转json成功返回json编码的string,失败返回false。…

    2022年7月17日
    87
  • spss聚类分析步骤详细解读_spss聚类分析实验报告

    spss聚类分析步骤详细解读_spss聚类分析实验报告目录快速聚类系统聚类分析二阶聚类分析快速聚类【分析】【分类】【k-均值聚类】,将变量移至变量框中,员工id移至【个案标注依据】框中【聚类数】是期望分成几组【保存】勾选【聚类成员】复选框结果解读:随机选择三个数据作为快速聚类的初始位置显示迭代次数,迭代过程可以理解为每个类别与初始位置之间的距离改变情况,当这个距离变动非常小,迭代就完成了…

    2022年10月9日
    6
  • 前缀和与差分 图文并茂 超详细整理(全网最通俗易懂)

    前缀和与差分 图文并茂 超详细整理(全网最通俗易懂)前缀和 前缀和是指某序列的前 n 项和 可以把它理解为数学上的数列的前 n 项和 对于一个一维数组的前缀和 前缀和算法有什么好处 先来了解这样一个问题 输入一个长度为 n 的整数序列 接下来再输入 m 个询问 每个询问输入一对 l r 对于每个询问 输出原序列中从第 l 个数到第 r 个数的和 一般解法 intn m scanf d d amp n amp m for inti 1 i lt n i scanf d amp a i while m

    2026年3月20日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号