uniapp 会先加载默认字体再加载第三方字体,导致字体闪烁
时间: 2023-08-05 10:36:19 浏览: 977
是的,UniApp 在加载字体时会先加载默认字体,然后再加载第三方字体。这可能会导致字体闪烁的问题,因为页面在加载第三方字体之前会先使用默认字体进行显示。
为了解决这个问题,您可以尝试使用 CSS 的 font-display 属性。这个属性可以控制字体的加载方式,让页面在加载字体时先显示默认字体,等待第三方字体加载完成后再进行替换,从而避免字体闪烁的问题。
具体使用方法如下:
1. 在 CSS 中设置字体的 font-display 属性:
```
@font-face {
font-family: 'YourFont';
src: url('path-to-your-font.woff2') format('woff2'),
url('path-to-your-font.woff') format('woff');
font-display: swap;
}
```
2. 在 HTML 中使用自定义字体:
```
<div style="font-family: YourFont">Hello World</div>
```
通过使用 font-display 属性,您可以让页面在加载字体时更加平滑,避免了字体闪烁的问题。
相关问题
uniapp 直接加载三方字体不加载默认字体
Uniapp 可以通过在 `App.vue` 中设置全局样式来实现加载三方字体,并且不加载默认字体。具体步骤如下:
1. 在 `static` 文件夹下创建一个名为 `fonts` 的文件夹,将你需要加载的字体文件放到该文件夹中。
2. 在 `App.vue` 中添加以下代码:
```html
<style lang="scss">
// 导入字体文件
@font-face {
font-family: "YourFontName";
src: url("../static/fonts/YourFontName.ttf");
}
// 设置全局字体样式
* {
font-family: "YourFontName", sans-serif !important;
}
</style>
```
其中,`YourFontName` 是你字体文件的名称,需要替换成实际的名称。
这样设置后,所有页面都会加载你指定的字体文件,并且不会加载默认字体。
uniapp app 引用第三方字体库
在 UniApp 中引用第三方字体库,可以按照以下步骤操作:
1. 下载字体文件:从第三方字体库的官方网站或其他来源下载所需的字体文件,通常为 `.ttf` 或 `.otf` 格式。
2. 创建 `fonts` 文件夹:在 UniApp 项目的根目录中创建一个名为 `fonts` 的文件夹,用于存放字体文件。
3. 引入字体文件:将下载的字体文件复制到 `fonts` 文件夹中。
4. 配置 `manifest.json`:在项目的 `manifest.json` 文件中,找到 `"app-plus"` 节点,添加 `"fonts"` 字段并配置字体文件路径,示例如下:
```json
"app-plus": {
"fonts": {
"custom": {
"/fonts/FontName.ttf": {
"family": "FontName",
"weight": "normal",
"style": "normal"
}
}
}
}
```
其中,`/fonts/FontName.ttf` 是字体文件的相对路径,`FontName` 是字体的名称。
5. 使用自定义字体:在需要使用自定义字体的页面或组件中,通过 CSS 指定字体,示例如下:
```css
@font-face {
font-family: 'FontName';
src: url('/fonts/FontName.ttf') format('truetype');
}
// 在需要使用自定义字体的元素上应用样式
.custom-font {
font-family: 'FontName', sans-serif;
}
```
6. 更新编译:保存以上更改后,重新编译 UniApp 项目。
这样就可以在 UniApp 的应用中成功引用第三方字体库了。请注意,不同平台可能对自定义字体的支持存在差异,建议在目标平台上进行测试和调整。