字體圖標的使用

来源:https://www.cnblogs.com/progor/archive/2019/01/13/10261744.html
-Advertisement-
Play Games

[toc] 首發日期:2019 01 13 字體圖標的介紹 什麼是字體圖標? 在電腦上,文字本質上都是一些像素點,而圖標也是一些像素點,那麼有沒有辦法把某個字體的字做成圖標的樣子呢?於是有了字體圖標這種東西。字體圖標本質上是一種字體,不過它在表現意義上是一個圖標。 為什麼使用字體圖標?有什麼好處? ...


目錄

首發日期:2019-01-13


字體圖標的介紹

-- 什麼是字體圖標?
在電腦上,文字本質上都是一些像素點,而圖標也是一些像素點,那麼有沒有辦法把某個字體的字做成圖標的樣子呢?於是有了字體圖標這種東西。字體圖標本質上是一種字體,不過它在表現意義上是一個圖標。


-- 為什麼使用字體圖標?有什麼好處?
如果你學過一些類似“精靈圖”這樣可以節省頁面資源請求的東西的話,那你會很容易就明白字體圖標的意義。這都是為了減少請求,提交頁面的效率啊。
在很多時候,一個圖片的位元組數要遠大於一個字的位元組數,所以如果我們傳輸一個類似圖標的字體的會比傳輸一個圖標圖片好節省傳輸資源。
另外一個好處是,轉成字體後的圖標就可以像字體一樣操作了,可以很容易地更改圖標的顏色和大小。


-- 字體圖標的不足
既然字體圖標那麼有效率,那麼為什麼不都使用字體圖標呢?現在的限制主要是字體圖標的開發要求比較高,畢竟是開發一種“字體”。所以很多時候特別的圖標(如公司logo)都使用有原始的圖標文件,而通用的可以使用字體圖標(搜索圖標啊,編輯圖標啊。)



自己開發字體圖標很累,幸好有很多樂於分享的coder,現在有很多網站把一些常用的圖標都做成了字體圖標分享了出來。

  • 比較知名的有
    • iconmoon:https://icomoon.io/
    • 阿裡旗下的iconfont:iconfont官網


下麵的例子使用阿裡旗下的iconfont為例


iconfont的使用






1.首先,進入阿裡旗下的iconfont官網iconfont官網搜索你想要的圖標。


2.選擇圖標,把圖標添加入庫


3.然後在右上角的小車子那裡把圖標下載下來。

點擊下載代碼


4.下載的是一個壓縮包,解壓後得到:


5.demo_index.html有介紹如何使用iconfont,不過我這裡也介紹一下(因為有些人覺得那個教程不太好理解,沒有一步步來)。




基於unicode的用法:

1.首先,把iconfont.eot,iconfont.woff2,iconfont.woff,iconfont.ttf,iconfont.svg拷貝出來,放到與自建的測試用的頁面demo.html位於同一個頁面。


2.在測試頁面中定義字體類型(這個可以從壓縮文件自帶的demo_index.html文件找到):

    /* css語法:定義字體類型 */
    @font-face {
      font-family: 'iconfont';
      src: url('iconfont.eot');
      src: url('iconfont.eot?#iefix') format('embedded-opentype'),
          url('iconfont.woff2') format('woff2'),
          url('iconfont.woff') format('woff'),
          url('iconfont.ttf') format('truetype'),
          url('iconfont.svg#iconfont') format('svg');
    }


3.在頁面中定義字體樣式(這個可以從壓縮文件自帶的demo_index.html文件找到):

    /* 定義圖標的樣式,使用了樣式,圖標才能正常顯示 */
    .iconfont {
      font-family: "iconfont" !important;
      font-size: 28px;
      color:red;
      font-style: normal;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
    }


4.隨便定義一個元素,如span,給元素加上上面定義的樣式,然後元素裡面的文本是一串unicode碼,這個碼可以從壓縮文件自帶的demo_index.html文件找到。

完整代碼如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>測試</title>
    <style>
    /* css語法:定義字體類型 */
    @font-face {
      font-family: 'iconfont';
      src: url('iconfont.eot');
      src: url('iconfont.eot?#iefix') format('embedded-opentype'),
          url('iconfont.woff2') format('woff2'),
          url('iconfont.woff') format('woff'),
          url('iconfont.ttf') format('truetype'),
          url('iconfont.svg#iconfont') format('svg');
    }
    /* 定義圖標的樣式,使用了樣式,圖標才能正常顯示 */
    .iconfont {
      font-family: "iconfont" !important;
      font-size: 28px;
      color:red;
      font-style: normal;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
    }
    </style>

</head>
<body>
    <!--  給元素的文字定義樣式才能把unicode碼值編碼成圖標 -->
    <span class="iconfont">&#xe638;</span>
</body>
</html>

補充

  • 由於上面是使用特殊的字體格式把unicode碼變成一個“像圖標的字體”,所以上面的圖標是可以使用字體的所有特性的(字體顏色,字體大小等等),這樣可以很輕易地更改圖標的顏色和大小。
  • 上面定義字體類型時使用的url是一個路徑,是當前文件與字體文件的相對路徑,所以如果字體文件不與測試網頁位於同級目錄下,那麼要更改。
  • @font-face這個語法我就不介紹了,這是CSS3的內容,不會的自己查一下吧,不想查的你就僅僅ctrl+cctrl+vdemo_index.html文件中的內容即可。
  • 這裡就介紹了基於unicode的用法,相信“入了門”後,你可以很輕易地從demo_index.html中學會後面的兩種用法。(常用的還是基於unicode的用法和基於class的)。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...