首页 > 技术文章 > CSS学习28-字体图标

brianxq 2021-06-04 16:39 原文


CSS 字体图标

1. 字体图标的产生

字体图标的使用场景:主要用于显示网页中通用、常用的一些小图标。

精灵图是有诸多优点,但是缺点很明显:

  1. 图片文件还是比较大的
  2. 图片本身放大和缩小会失真
  3. 一旦图片制作完毕想要非常复杂

此时,有一种技术的出现很好的解决了以上问题,就是字体图标iconfront。

字体图标可以为前端工程师提供一种方便高效的图标使用方式,展示的是图标,本质属于字体。


2. 字体图标的优点

  • 轻量级:一个图标字体要比一系列的图像要小。一旦字体加载了,图标就会马上渲染出来,减少了服务器请求
  • 灵活性:本质其实是文字,可以很随意的改变颜色、产生阴影、透明效果、旋转等
  • 兼容性:几乎支持所有的浏览器,请放心使用

注意:字体图标不能替代精灵技术,只是对工作中图标部分技术的提升和优化。

总结:

  1. 如果遇到一些结构和样式比较简单的小图标,就用字体图标。
  2. 如果遇到一些结构和样式复杂一点的小图片,就用精灵图。

3. 字体图标的下载

推荐下载网站:

在这里我们以 icomoon 字库为例。

下载完成之后,注意原先的文件不要删,后面会用。


4. 字体图标的引入

  1. 把下载包里面的 fonts 文件夹放入页面根目录下

    image-20210604162040388

  2. 在 CSS 样式中全局声明字体:简单理解就是把这些字体文件通过 css 引入到我们页面中。

    一定注意字体文件路径的问题。

    @font-face {
            font-family: 'icomoon';
            src: url('fonts/icomoon.eot?p4ssmb');
            src: url('fonts/icomoon.eot?p4ssmb#iefix') format('embedded-opentype'),
                url('fonts/icomoon.ttf?p4ssmb') format('truetype'),
                url('fonts/icomoon.woff?p4ssmb') format('woff'),
                url('fonts/icomoon.svg?p4ssmb#icomoon') format('svg');
            font-weight: normal;
            font-style: normal;
            font-display: block;
    }
    
  3. HTML标签内添加小图标 ( 小图标可在所下载的文件夹里的 demo.html 内查看 )。

image-20210604162923995

<span></span>

示例代码

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>字体图标的使用</title>
    <style>
        /* 字体声明 */
        @font-face {
            font-family: 'icomoon';
            src: url('fonts/icomoon.eot?p4ssmb');
            src: url('fonts/icomoon.eot?p4ssmb#iefix') format('embedded-opentype'),
                url('fonts/icomoon.ttf?p4ssmb') format('truetype'),
                url('fonts/icomoon.woff?p4ssmb') format('woff'),
                url('fonts/icomoon.svg?p4ssmb#icomoon') format('svg');
            font-weight: normal;
            font-style: normal;
            font-display: block;
        }

        span {
            font-family: 'icomoon';
            font-size: 100px;
            color: pink;
        }
    </style>
</head>

<body>
    <span></span>
    <span></span>
</body>

</html>

运行结果

image-20210604163059239

fonts 文件夹下载地址:https://files.cnblogs.com/files/blogs/677379/fonts.zip


5. 字体图标的追加

如果原来的字体图标不够用了,我们需要添加新的字体图标到原来的字体文件中。

把压缩包里面的 selection.jason 重新上传,然后选中自己想要的新图标,重新下载压缩包,并替换原来的文件即可。

image-20210604163739573

推荐阅读