CSS字体图标

1.优点

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

2.使用流程

1.UI人员实际字体图标效果图(svg)
2.前端人员上传生成兼容性字体文件包,下面这两个网站可以将svg文件转化为相应的字体.也可以从这两个网站上找现成的下载来用
http://icomoon.io 国外
http://iconfont.cn 国内
3.前端人员下载兼容字体文件包到本地
4.把字体文件包引入到HTML页面中
以国外的网站为例,操作如下:
* 进入网站,选择右上角的 IcoMoonApp 点击进入,如下:
* 这里写图片描述
* 然后选择需要的字体图标, 变白色的带黄方框的就是选择了的,正下方的中间位置会提示选择了几个, 如果不够,可以点击左下角的Add icons From Library… 选择自己喜欢的, 选择完成后点击右下角的Generate Font 进行下载.
* 这里写图片描述
* 点击了Generate Font进入下面的页面, 选择下方的download进行下载,(download后面有个设置的图标,可以进行设置文件名等)
* 这里写图片描述
*下载下来的压缩包中的文件如下所示,fonts文件夹需要复制到项目中.(demo.html后面有用)
这里写图片描述
ps:如果没有svg文件可以直接进行第三步,下下来之后,解压,不能将其余的删除,将fonts文件夹放到项目中.

3.使用

3.1如上面,解压后把文件夹放进项目,然后在style 标签 或者 css中加入如下代码进行声明:

@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') format('svg');
  font-weight: normal;
  font-style: normal;
}

PS:上面的代码基本上是不变的可以直接赋值.注意路径的位置就可以啦,如果.css文件不适合fonts在同一父目录下,需要进行适当的目录修改, 还有文件的名字icomoon.eot等,根据自己fonts中的文件的名字进行更改.

3.2 具体的使用
配置好之后,进行使用,如下:

<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') format('svg');
  font-weight: normal;
  font-style: normal;
}
   span {
           font-family: "icomoon"; //字体名字的意思,这个和上面的设置中的font-family中的值要一样
      //可以对字体图标进行相应的设置
}
</style>

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

下面是最重要的,打开刚才提到的demo.html(在解压后的文件中)
如下:
这里写图片描述
第一种方法:点击上图中(在图片中已经点击,并且下划线变蓝的位置),然后右击复制,粘贴到html文件中 body中的span标签中(有的可能没有字,是几个看不见的空出来的位置如: (形如好几个空格)),刷新就能看见了.
第二种方法:上图中的每个图表下面都有类似 e901 e90e的字样,将这个进行复制,然后使用伪类选择器进行添加:

span::before {
font-family: "icomoon";
   content: "\e901";  //前面一定要加  \
}

追加文字图标
如果感觉自己的图标不够用,可以进行追加,这里写图片描述
进入如上页面,选择左上角的import icons ,选择解压后的文件夹中的selection.json,然后弹窗选择YES,会出现以前的图标,然后选择新的,在进行下载 (所以下载后的压缩包和解压后的文件夹中的文件不要删除,,追加后,可以把之前的删掉了,后面的那个更全,使用后面的执行以上操作就可以啦)

### 实现 CSS 字体图标点击变色效果 为了实现字体图标点击后改变颜色的效果,可以通过 `:active` 或者 JavaScript 来完成。以下是两种方法的具体实现方式: #### 方法一:使用纯 CSS 的 `:active` 伪类 `:active` 是一种状态伪类,表示当用户单击某个元素时的状态。虽然它仅在按下鼠标按钮期间生效,但如果需要简单的交互体验,这种方法非常合适。 ```css /* 定义默认状态下图标的颜色 */ .icon { color: black; } /* 当图标被点击时的颜色变化 */ .icon:active { color: red; /* 设置点击后的颜色 */ } ``` 上述代码定义了一个 `.icon` 类,在正常情况下显示黑色字体图标,而当用户点击该图标时会变为红色[^1]。 --- #### 方法二:结合 JavaScript 动态修改样式 如果希望点击后永久保留新的颜色或者触发其他复杂逻辑,则需要借助 JavaScript 和事件监听器来动态更改样式的属性。 ```html <!-- HTML 结构 --> <i class="icon">图标</i> ``` ```css /* 默认状态下的图标颜色 */ .icon { color: blue; } /* 被激活后的图标颜色 */ .active-icon { color: green; } ``` ```javascript // 获取所有具有 .icon 类名的元素并绑定 click 事件 document.querySelectorAll('.icon').forEach(icon => { icon.addEventListener('click', () => { icon.classList.toggle('active-icon'); // 切换 active-icon 类 }); }); ``` 此方案允许用户每次点击切换一次颜色状态(蓝色 ↔ 绿色),并且这种变化不会随着鼠标的释放消失[^2]。 --- #### 注意事项 - **路径问题**:无论采用哪种方法,都需要确保字体文件已正确定义和加载至项目中,否则可能导致图标无法正确展示[^3]。 - **性能优化**:尽管字体图标相比传统图片更轻量化且易于操作,但在大规模应用前仍需评估其对整体页面性能的影响[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值