1. 介绍
随着小程序应用的普及,越来越多的开发者开始关注小程序界面的设计。Icon图标是作为小程序界面设计中最基本也最重要的元素之一。在小程序中,有多种方式可以实现Icon图标,而本文将针对小程序中常用的三种实现方式进行介绍,并且附上代码示例。
2. 使用字体图标
使用字体图标的方式比较简单,只需要先将字体文件引入到我们的小程序项目中,然后使用CSS来定义字体与字号等相关属性即可。
2.1 引入字体文件
这里我们以阿里巴巴的阿里图标库为例,使用它提供的字体库。我们可以在官网上选择需要的图标,然后将字体库下载到本地。
// 下载地址: https://www.iconfont.cn/
// 此处省去字体文件同步的操作,假设已经成功同步
// 在app.wxss文件中引入字体文件
@font-face {
font-family: 'iconfont';
src: url('iconfont.eot'); /* IE9*/
src: url('iconfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('iconfont.woff') format('woff'), /* chrome、firefox */
url('iconfont.ttf') format('truetype'), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/
url('iconfont.svg#iconfont') format('svg'); /* iOS 4.1- */
}
// 使用时在需要添加Icon的标签中添加iconfont类名,并且使用伪类:before来添加对应的字体图标
.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-add:before {
content: "\e63f";
}
上面的代码中,我们在app.wxss中引入了字体文件,并且设置了字体图标所在的font-family、字号大小等相关属性。在使用时,我们可以为需要添加Icon的标签增加一个iconfont类名,在CSS中添加伪类:before来设置字体图标。其中content代表要显示的字体图标的Unicode字符值,这里的值可以在阿里图标库中对应的图标页面里获取到。
3. 使用图片图标
使用图片图标的方式较为灵活,可以用于制作较为复杂的Icon。在小程序中,我们一般使用base64编码来存储图片。使用图片图标时,我们需要将base64编码后的图片直接作为url引入到CSS样式中。
// 将图片转为base64编码
// 在app.wxss文件中引入图片样式
.icon-img {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUh...,);
background-repeat: no-repeat;
width: 20px;
height: 20px;
}
上面的代码中,我们将图片转化为base64编码后,作为CSS中background-image属性的url值来引用。
4. 使用SVG图标
使用SVG图标是一种轻量级的图标设计方式,它可以支持众多的元素操作和动画效果。
4.1 准备SVG文件
为了使用SVG图标,我们需要先准备好需要使用的SVG文件。
<svg width="18" height="18" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg">
<title>plus-circle</title>
<path d="M14.688 0H3.312c-1.566 0-3 1.434-3 3.001v11.998C0 16.566 1.434 18 3.312 18h11.376C16.566 18 18 16.566 18 14.999V3.001C18 1.434 16.566 0 14.688 0zM9 14.377c-1.634 0-2.96-1.346-2.96-2.999 0-1.65 1.326-2.997 2.96-2.997s2.96 1.346 2.96 2.998c0 1.65-1.326 2.998-2.96 2.998z" fill-rule="evenodd"/>
</svg>
上面的代码中,我们将SVG文件内的path元素进行了简单的编写。通过path元素的d属性定义了图标的形状,并使用fill-rule属性设置了填充规则。我们还为svg元素添加了width、height、viewBox等属性来设置图标的大小。
4.2 引入SVG文件
接下来,我们需要将SVG文件解析成可以使用的代码,这里我们使用了一个在线SVG转换工具来将SVG文件转换为可用的代码。
接下来,我们将获取到的代码复制到小程序中即可。
// 在app.wxss文件中使用伪类:before添加对应的SVG图标
.icon-svg:before {
content: "";
background-image: url(data:image/svg+xml;charset=UTF-8,%3Csvg width%3D%2218%22 height%3D%2218%22 viewBox%3D%220 0 18 18%22 xmlns%3D%22http://www.w3.org/2000/svg%22%3E%0A %3Ctitle%3Eplus-circle%3C/title%3E%0A %3Cpath d%3D%22M14.688 0H3.312c-1.566 0-3 1.434-3 3.001v11.998C0 16.566 1.434 18 3.312 18h11.376C16.566 18 18 16.566 18 14.999V3.001C18 1.434 16.566 0 14.688 0zM9 14.377c-1.634 0-2.96-1.346-2.96-2.999 0-1.65 1.326-2.997 2.96-2.997s2.96 1.346 2.96 2.998c0 1.65-1.326 2.998-2.96 2.998z%22 fill-rule%3D%22evenodd%22/%3E%0A%3C/svg%3E%0A);
background-repeat: no-repeat;
width: 20px;
height: 20px;
display: inline-block;
}
上述代码中,我们需要将SVG文件转换为可用的代码,然后通过CSS样式将SVG图标添加到对应的标签上。同图片实现方式一样,这里我们同样使用base64编码来存储SVG图标。
总结
本文主要介绍了小程序中三种常用的Icon图标实现方式,其中包括使用字体图标、图片图标、SVG图标等。在实际开发中,可以根据需要选择不同方式进行实现,以达到更好的界面效果。