你见过html页面上‘x’字符变成打印机图标么?一般人应该没有。

-----------------------诡异bug-----------------------

今天测试报了一个bug,说页面上‘x’变成了打印机,之前从来没遇到过~~

我看了看我这的,正常啊~又去虚拟机下windows看了下,也正常啊~

诡异,开始去百度。发现有人在百度知道提了问题~第一个答案,瞎扯。

不过下边有个说,是因为用了微软雅黑字体的原因。

(#‵′)靠,微软雅黑还有这个bug?下的我赶紧去试了试,然并卵,这人也是瞎说。

然后去google看看吧,搜了半天,也只有百度知道那一个案例~~囧,还是自己去复现吧。

-----------------------稳定复现-----------------------

这里先吐槽一下测试提的bug,没有操作步骤~~~~~不过我经历了十分钟后,终于找到了稳定复现~~~~那么,问题是怎么来的呢

1. 尝试修改元素class发现,用了某个class后才有这个问题,该元素下所有的‘x’均会变成打印机。那就是这个class有问题。

2. mac OS和windows下表现一致。

3. 去查看iconfont库,发现并没有打印机图标。

4. 怀疑和content有关,把正常的图标的content属性改成x,果然,也变成了打印机。

5. 结合3.4,怀疑chrome默认加载了什么iconfont字体库设置,把‘x’当做了iconfont的content

6. 未果。

7. 考虑iconfont自身问题,抓包看font资源,preview后,抓到真凶

8. 去别的网站(iconmoon)核对,确认

9. 解决问题。iconfont渲染错误,咱这一时半会儿除了替换字体包,也没辙。所以先从用法上规避。

问题用法

<span class="iconfont">xxxxxx</span>

改后用法

<span>xxxxxx<i  class="iconfont"></i></span>

也就是说,iconfont元素里边避免在使用文案,所有图标使用最小元素去处理

废话了一大堆,想想还是因为项目中iconfont的使用没有做好规范~~~~~~~~~

心累~~~几个模块,两三种用法~~~等改天代码重构优化吧

流水账文章,自己留着看吧

结论:

使用iconfont元素的内部,避免使用文案。规范iconfont用法~

另外,已经在github上加了issue,等修复就好

【踩坑】iconfont使用异常bug的更多相关文章

  1. .NET Core 从1.1升级到2.0记录(Cookie中间件踩坑)

    .NET Core 2.0 新时代 万众瞩目的.NET Core 2.0终于发布了,原定于9.19的dotnetconf大会的发布时间大大提前了1个月,.NET Core 2.0/.NET Stand ...

  2. 【bug记录】OS Lab4 踩坑记

    OS Lab4 踩坑记 Lab4在之前Lab3的基础上,增加了系统调用,难度增加了很多.而且加上注释不详细,开玩笑的指导书,自己做起来困难较大.也遇到了大大小小的bug,调试了一整天. 本文记录笔者在 ...

  3. 【bug记录】OS Lab3 踩坑记

    OS Lab3 踩坑记 Lab3在之前Lab2的基础上,增加了进程建立.调度和中断异常处理.其中测试包括进程建立以及进程调度部分. 由于是第一次做bug记录,而且是调试完bug后再做的记录,所以导致记 ...

  4. 【踩坑系列】使用long类型处理金额,科学计数法导致金额转大写异常

    1. 踩坑经历 上周,一个用户反馈他创建的某个销售单无法打开,但其余销售单都可以正常打开,当时查看了生产环境的ERROR日志,发现抛了这样的异常:java.lang.NumberFormatExcep ...

  5. 异常记录-Dialog样式踩坑

    好久没记录文档了,拖了老半个月,终于空下来时间,为了避免以后踩坑,必须记录记录. 背景: 为activity设置样式为弹窗activity 异常一: activity设置style后,布局不能够正常显 ...

  6. Spark踩坑填坑-聚合函数-序列化异常

    Spark踩坑填坑-聚合函数-序列化异常 一.Spark聚合函数特殊场景 二.spark sql group by 三.Spark Caused by: java.io.NotSerializable ...

  7. 【踩坑】360安全浏览器“极速模式”和“兼容模式”,套路还是bug?

    分享踩坑点: 项目中需要兼容360安全浏览器,大家当然都希望用极速模式打开网站,但是发现总是被兼容模式打开 网址类似 aa.xx.dd.com 网上找了很多地方,有以下两种方法 1.<meta ...

  8. Spark 1.6升级2.x防踩坑指南

    原创文章,谢绝转载 Spark 2.x自2.0.0发布到目前的2.2.0已经有一年多的时间了,2.x宣称有诸多的性能改进,相信不少使用Spark的同学还停留在1.6.x或者更低的版本上,没有升级到2. ...

  9. 『OGG 02』Win7 配置 Oracle GoldenGate Adapter Java 踩坑指南

    上一文章 <__Win7 配置OGG(Oracle GoldenGate).docx>定下了 两个目标: 目标1: 给安装的Oracle_11g 创建 两个用户 admin 和 root ...

随机推荐

  1. 【uWSGI】 listen queue of socket (fd: 3) 错误分析

    现在django的应用基本都是使用uWSGI来部署,类似下面 listen queue of socket "127.0.0.1:9001" (fd: 3) 的错误出现过2次,下面 ...

  2. Android高效率编码-第三方SDK详解系列(三)——JPush推送牵扯出来的江湖恩怨,XMPP实现推送,自定义客户端推送

    Android高效率编码-第三方SDK详解系列(三)--JPush推送牵扯出来的江湖恩怨,XMPP实现推送,自定义客户端推送 很久没有更新第三方SDK这个系列了,所以更新一下这几天工作中使用到的推送, ...

  3. Oracle Service Bus 11g 的三种方案

    使用<Oracle Service Bus 11g Development Cookbook>中的方案迅速推出一批全新的面向服务和消息的解决方案 2012 年 3 月   (单击图像了解更 ...

  4. LM**项目开发感悟

    LM**项目开发感悟 经过一个多月的项目开发,自己主要负责服务端业务逻辑的实现.服务端采用纯servlet完成,自己是在已有的项目架构上进行编程,对于所使用的架构,自己还没有认真的研究过,但明白其用到 ...

  5. Learning ROS for Robotics Programming Second Edition学习笔记(三) 补充 hector_slam

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  6. how tomcat works读书笔记 七 日志记录器

    大家可以松一口气了,这个组件比较简单,这一节和前面几节想比,也简单的多. Logger接口 Tomcat中的日志记录器都必须实现org.apache.catalina.Logger接口. packag ...

  7. 在 Vim 中设置 Tab 为4个空格

    缩进用 tab 制表符还是空格,这不是个问题,就像 python 用四个空格来缩进一样,这是要看个人喜好的.在 Vim 中可以很方便的根据不同的文件类型来设置使用 tab 制表符或者空格,还可以设置长 ...

  8. 【55】java异常机制剖析

    一.为什么要使用异常 首先我们可以明确一点就是异常的处理机制可以确保我们程序的健壮性,提高系统可用率.虽然我们不是特别喜欢看到它,但是我们不能不承认它的地位,作用.有异常就说明程序存在问题,有助于我们 ...

  9. HBase缓存的使用

    hbase中的缓存分了两层:memstore和blockcache. 其中memstore供写使用,写请求会先写入memstore,regionserver会给每个region提供一个memstore ...

  10. vs2010 matlab混合编程调用matlab引擎

    // matlab_engine.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include "engine.h" ...