本工具用於解決如下問題css
點擊按鈕 html
選擇 ttf 後綴文件 vue
解析成功 ios
點擊具體圖標,可複製該 icon 代碼 git
複製在線資源連接github
針對 unicode 模式,複製在線 ttf 文件連接 web
針對 Font class 模式,複製在線 css 文件連接 ajax
針對 Symbol 模式,複製在線 js 文件連接 算法
點擊解析 chrome
解析成功,點擊具體圖標,可複製該 icon 代碼
以前一直只知道怎麼用 iconfont ,但並無深刻了解相關知識,最新學習了一下,在這裏跟你們分享。
unicode 模式
它自己和引用外部自定義字體沒有區別。只是一個表現出來是圖形,另外一個是文字。對系統來講,沒有區別。
引用 iconfont 和引用自定義字體,使用的代碼是同樣
定義字體族
@font-face {
font-family: 'iconfont'; /* 自定義字體族名,能夠是任意名, */
src: url('//at.alicdn.com/t/font_1357308_kygursq6jw.eot'); /* 字體描述文件連接 */
src: url('//at.alicdn.com/t/font_1357308_kygursq6jw.eot?#iefix') format('embedded-opentype'), /* 兼容 IE9 */
url('//at.alicdn.com/t/font_1357308_kygursq6jw.woff2') format('woff2'), /* 兼容 IE6-IE8 */
url('//at.alicdn.com/t/font_1357308_kygursq6jw.woff') format('woff'), /* 兼容 chrome, firefox, opera, Safari, Android, iOS 4.2+ */
url('//at.alicdn.com/t/font_1357308_kygursq6jw.ttf') format('truetype'), /* 兼容 chrome, firefox, opera, Safari, Android, iOS 4.2+ */
url('//at.alicdn.com/t/font_1357308_kygursq6jw.svg#iconfont') format('svg'); /* 兼容 iOS 4.1及以上 */
}
複製代碼
使用字體族(不管是文本仍是icon)
.iconfont {
font-family: "iconfont" !important; /*使用自定義字體或者icon*/
/* 上面一句,和咱們平時定義「微軟雅黑」(font-family: "Microsoft YaHei", sans-serif;)字體是一樣的語法 */
/* 只是「微軟雅黑」在大部分電腦都會自帶有,瀏覽器能直接找到系統的「微軟雅黑」字體描述文件,不須要咱們本身定義字體族,不須要使用外部的字體描述文件 */
}
複製代碼
「&#」的意思,「&#」 開頭的是HTML實體。全部 html 顯示的內容,均可以經過 &# 的形式表述。例如,漢字的HTML實體由三部分組成,&#(中文對應ASCII碼);
。例如,把「最新」 轉換成「最新」
爲何中英文能直接顯示,不須要使用「&#」形式表示呢?由於中英文有 ASCII 進行自動轉義。而 iconfont 不在 ASCII 中定義。是自定義的。
iconfont 至關於使用了剩餘的 unicode 編碼,將自定義的圖標描述經過 &# 開頭的 HTML 實體的形式表現出來。
以「&#」開頭的後接十進制數字,以「&#\x」開頭的後接十六進制數字
Font class
該模式和 unicode 模式是一樣的原理,經過 unicode 編碼保存。只是使用方式不一樣。
unicode 是直接將內容寫到 innerHTML 中轉義,而 font class 則是經過 css 的 :before 僞類,將經過 content 來定義。
在 font class 中,「&#\x」被轉義符「\」替換,由於「&#\x」是 html 實體字符,只會被 html 解析,不能在 css 中被解析。
經過阿里iconfont 給出的 css 連接,在瀏覽器中直接查看該文件能夠看到其定義
Symbol