CSS 字体图标

html中引入图片不但增加了总文件的大小,还增加了很多额外的"http请求",这都会大大降低网页的性能的。更重要的是图片不能很好的进行“缩放”,因为图片放大和缩小会失真。字体图标(iconfont)就解决了我们的问题。

  • iconfont跟图片一样可以改变透明度、旋转度…
  • 由于其本质是文字,可以很随意的改变颜色、产生阴影、透明效果等等…
  • 占用空间更小,加载更快,但携带的信息并没有减少
  • 几乎支持所有的浏览器

推荐网站:
http://icomoon.io
http://www.iconfont.cn/
http://fortawesome.github.io/Font-Awesome/

如何将从网站下载的字体图标引入到html中呢?
分三步:
第一步:在样式里面声明字体
第二步:给盒子使用字体,使用的字体名与声明的一致
第三步:盒子中添加结构(有两种方法,见代码块,图标和图标代码从下载的字体包中demo.html文件中获得)

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</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;
	}

	/*第二步:给盒子使用字体*/
	span {
		font-family: "icomoon";
	}
	
	/*第三步:盒子中添加结构 方法二*/
	span::before {
		content: "\e900";
	}
	</style>
</head>
<body>
	<span></span>  <!-- 第三步:盒子中添加结构 方法一 -->
</body>
</html>

CSS学习笔记,整理于网络资源

### 实现 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]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值