【微信小程序】如何引入外部字体样式

本文详细介绍了如何将ionicons字体引入项目的过程。首先通过下载并转换ttf文件为Base64encode的TTF格式,接着将转换后的css代码复制到项目中,并添加相应样式。

我引入的字体是 ionicons 字体 
这里写图片描述
Download Zip后打开fonts文件夹,将对应字体的 ttf文件 上传至 https://transfonter.org/ 
这里写图片描述
注意一定要选中 Base64 encode 的TTF格式,Convert 后下载转换后的压缩包,并将其中的 transfonter.org-20180404-162638/stylesheet.css 中的代码复制粘贴到 需要的位置,比如我的为下: 
这里写图片描述
还要在后方加上相应的样式:(这个样式从ionicons-master\css\ionicons.css中找) 
这里写图片描述
然后在需要引入该字体的地方进行引入: 
这里写图片描述 
使用时 font-family 和@font-face里名字一样即可。(content那些什么的就不多说了)

### 微信小程序引入和使用自定义字体微信小程序引入和使用自定义字体可以通过多种方式实现,具体方法取决于开发者的需求和技术栈。以下是几种常见的解决方案: #### 方法一:通过 `@font-face` 声明字体 可以在项目的样式文件(如 `.wxss` 文件)中使用 CSS 的 `@font-face` 来声明自定义字体。这种方式适用于静态资源的场景。 ```css /* 在 style/font.wxss 中 */ @font-face { font-family: "CustomFont"; src: url("https://example.com/fonts/CustomFont.ttf"); } .text-with-custom-font { font-family: "CustomFont", sans-serif; } ``` 此方法需要确保字体文件能够被正确加载,并且路径有效[^1]。 --- #### 方法二:使用 `wx.loadFontFace` 动态加载字体 对于动态加载需求,可以利用微信小程序提供的 API —— `wx.loadFontFace` 接口来完成。该接口允许程序运行时加载指定的字体文件。 ```javascript // 在 JavaScript 文件中调用 wx.loadFontFace wx.loadFontFace({ family: 'MyDynamicFont', source: 'url("https://example.com/fonts/DynamicFont.woff2")', success(res) { console.log('字体加载成功:', res); }, fail(err) { console.error('字体加载失败:', err); } }); ``` 一旦字体加载成功,就可以在页面中的任何地方通过设置 `font-family` 属性来应用它[^2]。 --- #### 方法三:本地存储字体文件 如果希望减少对外部网络依赖,可以选择将字体文件作为本地资源打包到小程序中。此时需注意调整相对路径以匹配实际目录结构。 ```css /* app.wxss 或其他全局样式表 */ @font-face { font-family: "LocalFont"; src: url("/assets/fonts/LocalFont.otf"); /* 路径应指向 fonts 目录下的文件 */ } .custom-text-class { font-family: "LocalFont", serif; } ``` 这种方法的优势在于离线可用性和更快的加载时间,但也可能增加包体积[^4]。 --- #### 注意事项 1. **跨平台兼容性** 部分情况下,某些字体可能无法正常渲染于 Android 设备上。这通常是因为操作系统层面未完全支持特定格式的字体文件。建议测试不同设备的表现并选用广泛适配的字体类型(如 WOFF/WOFF2)。 2. **性能优化** 字体文件较大可能导致首屏加载变慢。因此推荐压缩字体大小或将非必要部分延迟加载[^1]。 3. **版权问题** 使用第三方字体前务必确认其授权许可范围是否允许嵌入至应用程序内发布[^3]。 --- ### 示例代码总结 以下是一个完整的例子展示如何结合以上技术要点在一个简单的微信小程序项目里配置自定义字体: ```html <!-- index.wxml --> <view class="custom-font">这是采用自定义字体的文字</view> ``` ```css /* index.wxss */ @import "../../style/font.wxss"; .custom-font { font-family: "CustomFont", Arial, sans-serif; } ``` ```javascript // utils/loadFonts.js (可选) export function loadExternalFont() { return new Promise((resolve, reject) => { wx.loadFontFace({ family: 'ExternalFont', source: 'url("https://external-source.com/fonts/FancyFont.woff2")', success: resolve, fail: reject, }); }); } ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值