日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

怎么在小程序中使用彩色图标iconfont

發布時間:2024/3/13 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 怎么在小程序中使用彩色图标iconfont 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

怎么在小程序中使用彩色圖標iconfont

國際慣例,先上圖:

概要

一般我們在開發的時候,都是采用 iconfont 來管理項目里的圖標,方便快捷。但是當我需要將項目遷移的小程序的時候,就遇到了很多問。iconfont 字體怎么引入?不支持 dom 操作,字體怎么操作?彩色字體怎么使用?
各種問題困擾著我們,我們可能會有各種折中的方案,比如線上字體 CDN 引入,字體 base64,雪碧圖等等。

全新的方式 iconfont-tools 快速生成彩色圖標庫

https://github.com/HuaRongSAO/iconfont-tools
歡迎點贊

npm i -g iconfont-toolscd project/asset/font_hiytajitqeu // 進入圖標文件所在文件夾iconfont-tools // 生成小程序專用文件

生成目標文件:

. └── font_hiytajitqeu├── demo.css├── demo_index.html├── iconfont.css├── iconfont.eot├── iconfont.js├── iconfont.svg├── iconfont.ttf├── iconfont.woff└── iconfont.woff2├── iconfont-weapp # 目標文件夾│ ├── icon # 生成原生的icon組件庫│ │ ├── icon.js│ │ ├── icon.json│ │ ├── icon.wxml│ │ └── icon.wxss│ ├── iconfont-weapp-icon.css # 包含彩色圖標的css│ └── iconfont-weapp-icon.wxss # 包含彩色圖標的wxss

最后:

  • 方式一:引入小程序項目: @import ‘/your/path/font_hiytajitqeu/iconfont-weapp/iconfont-weapp-icon.wxss’
  • 方式二:注冊組件:“icon”: “/your/path/font_hiytajitqeu/iconfont-weapp/icon”

其他小程序框架,taro,wepy,mpvue 等等,可以直接通過引入iconfont-weapp-icon.css文件,實現。

原理

實現原理主要是通過 SVG 作為背景圖進行實現的。
一般我們實現一張圖標的實現方式是通過 base64 作為背景圖實現實現的如下圖

.icon {width: 20px;height: 20px;background: url(data:image/svg+xml;base64, PHN2ZyB2ZXJza..) no-repeat center;background-size: 100%; }

但是通過 base64 位生成背景圖,有個小問題,主要是因為 base64 算法的問題,會增加代碼的數量從而增加文件大小。
簡單原理:大概就是字符串的 3 個字符轉化成 4 位字符
通過 base64 加密后會使文件大小增加 2,30%

于是就有了新的引入方式:

SVG 直接內聯

.icon {width: 20px;height: 20px;background: url(<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="200" height="200" viewBox="0 0 200 200"><path fill="#00A5E0" d="M145.659,68.949c-5.101-5.208-13.372-5.208-18.473,0L99.479,97.233 L71.772,68.949c-5.1-5.208-13.371-5.208-18.473,0c-5.099,5.208-5.099,13.648,0,18.857l46.18,47.14l46.181-47.14 C150.759,82.598,150.759,74.157,145.659,68.949z"/></svg>') no-repeat center;background-size: 100%; }

這不就很完美了嘛!
可惜在存在兼容性問題,在 IE 就可能無法線上了。
那問題出在哪?
",%,#,{,},<,>這些特殊符號。

找到了問題,那解決方式就有了,encodeURIComponent對數據進行 url 編碼。

.icon {width: 20px;height: 20px;background: url(data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3Csvg%20versi...)no-repeat center;background-size: 100%; }

這樣 svg 的顯示方案就做好了。

從 iconfont 中提取我們需要 SVG

下載解壓完畢的 iconfont 一般長這樣

其中 svg 的代碼,在 iconfont.js 和 iconfont.svg 兩個文件

通過詳細對比和仔細閱讀源碼,發現答案就在 iconfont.js 里面

圖中畫紅框的位置,就是 svg 的全部源碼了。

那么實現方式就很明朗了

找到對應的svg標簽 ==> 提取標簽 ===> encodeURIComponent 編碼標簽 ==> 生成css文件

好的大功告成!

那么問題來,工具怎么下載?

https://github.com/HuaRongSAO/iconfont-tools

蟹蟹

相關閱讀:
張鑫旭:CSS 中內聯 SVG 圖片
base64

總結

以上是生活随笔為你收集整理的怎么在小程序中使用彩色图标iconfont的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人娱乐网| 男欢女爱久石 | 人体裸体bbbbb欣赏 | 电车痴汉在线观看 | 欧美精品乱码视频一二专区 | 日本一区免费电影 | 香蕉视频在线免费 | 日日摸日日添日日碰9学生露脸 | 欧美激情视频一区二区三区 | 在线毛片观看 | 中文字幕第15页 | 人妻激情偷乱频一区二区三区 | 美女屁股网站 | 男女视频在线 | 日韩91视频| 欧美特一级片 | 99久久这里只有精品 | jvid视频| 一区二区三区波多野结衣 | 99色综合网 | 91精品国产高清91久久久久久 | 高清一区二区三区四区五区 | 先锋影音av资源网站 | 69精品视频 | 国产精品一区电影 | 国产男男gay网站 | 亚洲四虎av| 日本极品少妇 | 国产九九九精品 | www视频免费观看 | 丁香六月综合激情 | 人人看人人澡 | 日本天堂免费a | 性色免费视频 | 中文字幕在线国产 | 妖精视频在线观看 | 成年人免费观看网站 | av片亚洲 | 制服丝袜快播 | 91视频com| 777奇米视频 | 午夜久久电影 | 五月激情在线观看 | 森林影视官网在线观看 | 波多野结衣毛片 | 久久精品导航 | 欧美三级三级三级爽爽爽 | 韩国成年人网站 | 天天操天天插天天射 | 777奇米视频 | 韩国主播青草55部完整 | 国产男女猛烈无遮挡免费观看网站 | 十大污网站 | 国产精品一级二级三级 | 日韩高清精品免费观看 | 色女生影院 | 久久激情视频 | 亚洲激情一区二区 | 影音先锋男人的天堂 | 亚洲午夜小视频 | 日韩毛片大全 | 午夜一区二区三区四区 | 开心激情网五月天 | 欧美午夜精品久久久久免费视 | 国产一区二区视频在线播放 | 欧美日韩在线免费观看视频 | 伊人成人在线视频 | 91国产视频在线 | 欧美a大片| 久热精品在线视频 | 国产手机视频在线 | 午夜一二区| 91亚洲精品一区二区乱码 | 激情av在线播放 | 久久久久久久国产视频 | 国产黄色a| 一个人在线观看免费视频www | 手机在线亚洲 | √天堂中文官网8在线 | 爱的色放韩国电影 | 欧美浪妇xxxx高跟鞋交 | 亚洲中文在线一区 | 国产欧美精品在线 | 99re6在线视频 | 猛男大粗猛爽h男人味 | 黄色aaa大片 | 99re在线精品视频 | 亚洲 欧美 综合 | 久草久草久草 | 精品视频在线播放 | 手机在线观看毛片 | 日韩视频中文 | 久久理论| 黄色网页在线看 | 夜夜se | 寂寞少妇让水电工爽hd | 自拍偷拍电影 | 国产精品福利小视频 | 国产一区在线视频观看 |