用16进制编码的字体图标在部分小米机型显示不正常。

测试机型:小米1,小米1s,小米2
浏览器:微信6.1内置浏览器,QQ浏览器 5.7 X5内核
字体图标:不显示
svg图标:显示正常

以下来自额微信内置浏览器的截图,字体图标不显示。

内置浏览器,uc浏览器,正常显示,以下为内置浏览器截图。

如 Glyphicons 官网的字体图标就显示不正常,svg图标显示正常。

Glyphicons 官网:http://glyphicons.com/

截图来自QQ浏览器(新版微信采用QQ浏览器内核)访问Glyphicons 官网,右侧杯子部分是SVG的图片,显示正常;右侧红色标签隔壁空白部分,一堆的iconfont图标都显示异常。

国内阿里Iconfont:http://www.iconfont.cn/    官网采用SVG绘制正常显示,下载回来的demo显示不正常。

以下截图来自阿里Iconfont下载回来的demo。

 偶尔发现icomoon首页的图标采用了字体图标,但是能正常显示。
icomoon官网地址:https://icomoon.io/
  1. /* icomoon 的@font-face声明字体如下*/
  2. @font-face {
  3. font-family: 'icomoonio';
  4. src: url("https://s3.amazonaws.com/icomoon.io/4/icomoonio/icomoonio.eot?bqv7mo");
  5. src: url("https://s3.amazonaws.com/icomoon.io/4/icomoonio/icomoonio.eot?#iefixbqv7mo") format("embedded-opentype"),
  6. url("https://s3.amazonaws.com/icomoon.io/4/icomoonio/icomoonio.svg?bqv7mo#icomoonio") format("svg"),
  7. url("https://s3.amazonaws.com/icomoon.io/4/icomoonio/icomoonio.woff?bqv7mo") format("woff"),
  8. url("https://s3.amazonaws.com/icomoon.io/4/icomoonio/icomoonio.ttf?bqv7mo") format("truetype");
  9. font-weight: normal;
  10. font-style: normal
  11. }
  12. /*定义使用iconfont的样式*/
  13. .ff-icomoon {
  14. font-family: 'icomoonio'
  15. }
  16. /*获取字体编码,应用于页面*/
  17. [data-icon]:before {
  18. font-family: 'icomoonio';
  19. content: attr(data-icon); /*获取标签的data-icon字体编码,与平常我们的方式不太一样*/
  20. speak: none; /*取消发音*/
  21. line-height: 0
  22. }
各种分析调试对比后发现,原来是加载顺序有问题。

移动端有问题的加载顺序:eto,woff,ttf,svg
  1. //有兼容问题的字体图标加载顺序
  2. @font-face {font-family: "iconfont";
  3. src: url('iconfont.eot'); /* IE9*/
  4. src: url('iconfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
  5. url('iconfont.woff') format('woff'), /* chrome、firefox */
  6. url('iconfont.ttf') format('truetype'), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/
  7. url('iconfont.svg#iconfont') format('svg'); /* iOS 4.1- */
  8. }

移动端字体图标加载顺序应该为 eto,svg,woff,ttf(把SVG放到前面)

  1. //移动端字体图标
  2. @font-face {font-family: "iconfont";
  3. src: url('../font/iconfont.eot'); /* IE9*/
  4. src: url('../font/iconfont.svg#iconfont') format('svg'), /* iOS 4.1- */
  5. url('../font/iconfont.woff') format('woff'), /* chrome、firefox */
  6. url('../font/iconfont.ttf') format('truetype'); /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/
  7. }
 
 
 不过用fiddler抓包,只看到手机请求了svg,兼容情况良好。
 
SVG字体兼容如下图: http://caniuse.com/#search=svg%20font
 
据说安卓4.1一下不支持SVG,但是没机器,测试不了,有Android 2.3的朋友帮忙测一下给个留言感激不尽。
 
 
在ios系统图标会往下错位,如下图:
 
设置一下默认行高为1即可。
  1. .iconfont{line-height:1;}

设置默认行高后。

 

移动端字体图标不显示的Bug的更多相关文章

  1. JqGrid分页按钮图标不显示的bug

    开发中遇到的一个小问题,记录一下,如果有朋友也遇到了相同的问题,可以少走些弯路少花点时间. 如图: 分页插件使用了JqGrid,但是分页栏里出现了问题,上一页.下一页这些按钮的图标都显示为空,记得以前 ...

  2. BootStrap字体图标不显示、下拉菜单不显示

    在W3CSchool学习BootStrap教程时遇到的问题…… 1.字体图标不能显示 上面是正常显示的样子,不能正常显示,因为缺少下面的字体图标样式文件 (1)在下载的Bootstrap包中将font ...

  3. Chrome 对于 glyphicon 字体图标不显示的解决的方法

    在将Chome默认字体渲染为微软雅黑后,部分字体图标显示为方框,这里Chome扩展文档提供的解决的方法为: 找到  custom.css 文件,路径为: C:\Users\(username)\App ...

  4. vue iView 打包后 字体图标不显示

    问题描述: 今天webpack打包后发现iView 字体图标不显示 解决方案: build/webpack.prod.conf.js 这个文件里面 module: { rules: utils.sty ...

  5. webpack打包绝对路径引用资源和element ui字体图标不显示的解决办法

    webpack打包绝对路径引用资源解决办法: 打开webpack.prod.conf.js 找到output:增加 publicPath: './',  即可,如图  element ui字体图标不显 ...

  6. bootstraps字体图标无法显示

    使用bootstraps字体图标,必须在css的同级文件夹下,建立新的文件夹为fonts,放入一下文件. 在还是无法显示字体图标的情况下,可查看bootstraps.css中的 @font-face ...

  7. react中iconfont字体图标不显示问题

    如下图, 写四个圆圈,直接将iconfont的字体编码写在静态HTML结构中时显示没问题,然而明显这样的结构用循环写是更好的选择, 但是,页面上不能显示字体图片了,而是直接显示字体编码 原因是字体编码 ...

  8. elementUI字体图标不显示问题

    原文链接: 点我 自己搭建的Vue项目,没有使用vue-cli,引入elementUI时提示字体图标404,找不到文件,如下错误: GET http://localhost:9090/WEB-INF/ ...

  9. thinkphp使后台的字体图标显示异常

    thinkphp使后台的字体图标显示异常 相似问题 1.thinkPHP的这些图标都不显示了-CSDN论坛https://bbs.csdn.net/topics/391823415 解答: 发现在别的 ...

随机推荐

  1. shell脚本 系统信息检测

    一.简介 源码地址 日期:2018/4/12 介绍:根据指令展示不同的系统数据 效果图: 二.使用 适用:centos6+ 语言:中文 注意:无 下载 wget https://raw.githubu ...

  2. 小迪安全 Web安全 基础入门 - 第二天 - Web应用&架构搭建&漏洞&HTTP数据包&代理服务器

    一.网站搭建 1.域名.是由一串用点分隔的字符组成的互联网上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位.域名可以说是一个IP地址的代称,目的是为了便于记忆后者. 2.子域名.在 ...

  3. 总结Vue第一天:简单介绍、基本常用知识、辅助函数

    总结Vue第一天:简单介绍.基本常用知识.辅助函数 中文官网:https://cn.vuejs.org/v2/guide/syntax.html 遇到不熟悉的可以先看一下官网,然后再看一下一些别人写的 ...

  4. Linux(centos) 设置MySQL数据库不区分大小写

    1.修改配置文件 vim /etc/my.cnf 在[mysqld]节点下,加入一行: lower_case_table_names=1 2.重启数据库服务 service mysqld restar ...

  5. 【LeetCode】294. Flip Game II 解题报告 (C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 记忆化搜索 日期 题目地址:https://leetc ...

  6. 【LeetCode】171. Excel Sheet Column Number 解题报告(Java & Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目大意 解题方法 Java解法 Python解法 日期 [LeetCode] 题 ...

  7. 【LeetCode】984. String Without AAA or BBB 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 字符串构造 日期 题目地址:https://leet ...

  8. 【LeetCode】336. Palindrome Pairs 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 HashTable 相似题目 参考资料 日期 题目地 ...

  9. 1434 区间LCM

    1434 区间LCM 基准时间限制:1 秒 空间限制:131072 KB 一个整数序列S的LCM(最小公倍数)是指最小的正整数X使得它是序列S中所有元素的倍数,那么LCM(S)=X. 例如,LCM(2 ...

  10. Normalization Methods

    目录 概 主要内容 Batch Normalization Layer Normalization Instance Normalization Group Normalization Ioffe S ...