制作css图标
使用CSS制作图标的方法
使用伪元素和基础形状
通过CSS的::before和::after伪元素结合border、transform等属性可以创建简单图标。例如制作一个三角形图标:
.triangle {
width: 0;
height: 0;
border-left: 10px solid transparent;
border-right: 10px solid transparent;
border-bottom: 20px solid #333;
}
利用CSS渐变
线性渐变和径向渐变可组合出复杂图形。如制作一个圆形靶心图标:

.target {
width: 40px;
height: 40px;
border-radius: 50%;
background:
radial-gradient(circle at center, #fff 0%, #fff 25%, #f00 25%, #f00 35%, #fff 35%);
}
结合box-shadow
多重阴影可创建多个重复形状。例如制作三个水平排列的点:
.dots {
width: 8px;
height: 8px;
border-radius: 50%;
background: #000;
box-shadow: 15px 0 #000, 30px 0 #000;
}
动画图标
通过@keyframes添加动态效果。如旋转加载图标:

.loader {
width: 30px;
height: 30px;
border: 3px solid rgba(0,0,0,0.1);
border-top-color: #09f;
border-radius: 50%;
animation: spin 1s linear infinite;
}
@keyframes spin {
to { transform: rotate(360deg); }
}
响应式图标技巧
使用em或rem单位确保图标随字体大小缩放:
.responsive-icon {
width: 1em;
height: 1em;
display: inline-block;
vertical-align: middle;
}
复杂图标组合
多个HTML元素叠加实现复杂图标。如制作一个放大镜图标:
<div class="magnifier">
<div class="glass"></div>
<div class="handle"></div>
</div>
.magnifier { position: relative; }
.glass {
width: 20px;
height: 20px;
border: 3px solid #333;
border-radius: 50%;
}
.handle {
position: absolute;
width: 8px;
height: 15px;
background: #333;
transform: rotate(-45deg);
top: 15px;
left: 15px;
}
性能优化建议
- 优先使用
transform而非width/height变化实现动画 - 减少不必要的阴影和渐变层级
- 对静态图标考虑使用CSS雪碧图减少HTTP请求






