你見過html頁面上‘x’字符變成打印機圖標麼?通常人應該沒有。html
-----------------------詭異bug-----------------------git
今天測試報了一個bug,說頁面上‘x’變成了打印機,以前歷來沒遇到過~~github
我看了看我這的,正常啊~又去虛擬機下windows看了下,也正常啊~chrome
詭異,開始去百度。發現有人在百度知道提了問題~第一個答案,瞎扯。windows
不過下邊有個說,是由於用了微軟雅黑字體的緣由。測試
(#‵′)靠,微軟雅黑還有這個bug?下的我趕忙去試了試,然並卵,這人也是瞎說。字體
而後去google看看吧,搜了半天,也只有百度知道那一個案例~~囧,仍是本身去復現吧。優化
-----------------------穩定復現-----------------------網站
這裏先吐槽一下測試提的bug,沒有操做步驟~~~~~不過我經歷了十分鐘後,終於找到了穩定復現~~~~那麼,問題是怎麼來的呢google
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,等修復就好