javascript - h5页面字体图标显示不正常
ringa_lee
ringa_lee 2017-04-10 17:33:03
[JavaScript讨论组]

问题描述

开发的是微信公众号的纯静态H5页面,测试发现在iOS上面首次打开会出现字体图标无法显示的问题,并且切换到其它页面,字体图标也是一样无法显示:

只能使用微信的右上角内的刷新选项,所有页面的图标就可正常显示,浏览其它页也正常:

P.S.所有页面在iOS自带的safari或者chrome浏览器均可正常显示,在android也是正常显示。

相关代码

HTML:

CSS:

@charset "UTF-8";

@font-face {
  font-family: "cphfont";
  src: url("../../assets/fonts/cphfont.ttf") format("truetype"), url("../../assets/fonts/cphfont.svg?t=1474972592#cphfont") format("svg");
  font-weight: normal;
  font-style: normal;
}
.cph-icon {
  display: inline-block;
  font-family: "cphfont" !important;
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  line-height: 1;
  text-decoration: none;
  -webkit-font-smoothing: antialiased;
  -webkit-text-stroke-width: 0.2px;
}
.cph-icon.cph-active {
  color: #1f446c;
}
.cph-icon.cph-right:before {
  float: right;
  padding-left: 0.2em;
}

.cph-icon-good:before {
  content: "\e65d";
}
.cph-icon-user2:before {
  content: "\e660";
}

.cph-icon-user3:before {
  content: "\e6a3";
}

.cph-icon-user4:before {
  content: "\e6a4";
}
...

已尝试过的办法

  • 刚开始以为是字体文件的问题,重新下载官方的字体文件

  • 编码问题:全部编码均为utf-8,包含html,css,js

  • 尝试把字体文件直接使用嵌入css中

@font-face {
     font-family: "cphfont";
     src: url(data:application/font-ttf;charset=utf-8;base64,AAEAAAAPAIAAAwBwRkZUT...) format('truetype'),
     url('../../assets/fonts/cphfont.svg?t=1474972592#cphfont') format('svg'); 
     font-weight: normal;
     font-style: normal;

补充一个细节

微信公众号首次打开时需要授权登录(一次页面跳转),目前这个跳转是由前端的JS代码实现,不知是否由于页面跳转时导致字体文件被浏览器取消下载,授权登录后跳回原页面才导致字体图标无法显示的问题??该问题还是极有可能导致微信浏览器出现问题,待我测试后再补充说明。。。
微信公众号文档

ringa_lee
ringa_lee

ringa_lee

全部回复(2)
PHP中文网

你自己使用一下刷新。window.location.reload(true);然后判断一下。只在第一次打开的时候执行

伊谢尔伦

字体文件多大,是否是太大影响加载;注释掉字体引用看看

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号