mui如何增加自定義icon圖標

mui如何增加自定義icon圖標

mui框架遵循極簡原則,在icon圖標集上也是如此,mui僅集成了原生系統中最常用的圖標;其次,mui中的圖標並不是圖片,而是字體,至於爲什麼使用字體圖標而不是圖片,相信web開發者多少都有所瞭解,簡單列舉幾條:


  • 多個圖標字體合成一個字體文件,避免每張圖片都需要聯網請求;
  • 字體可任意縮放,而圖片放大會失真、縮小則浪費像素;
  • 可通過css任意改變顏色、設置陰影及透明效果;

在實際項目中,開發者難免會需要自定義圖標,此時該如何操作呢?本文以阿里巴巴矢量圖標庫爲例(同樣的網站有很多,比如icomoon,歡迎熱心用戶分享其它平臺的使用方法),介紹一種用戶自定義圖標的方法,假設我們要做一個電商項目,需要補充男裝、女裝、購物車三個圖標,如下爲分步實現操作;

登錄

瀏覽器訪問阿里巴巴矢量圖標庫官網,選擇登錄方式,可直接使用新浪微博賬號登錄;

搜索圖標

在右上角搜索“男裝”,會列出當前網站上的所有男裝圖標,如下:
image
選擇自己喜歡的圖標,點擊,會添加到右上角的購物車中,如下:
image
同樣的方式分別搜索選擇女裝、購物車圖標,結果如下:
image
之後點擊“存儲爲項目”,輸入項目名字,例如“mui-icon-custom”,點擊“存儲”按鈕後,會跳轉到項目管理頁面,如下圖所示:
image

下載字體

點擊“下載到本地”按鈕,會將合併後的字體文件及自動生成的css全部下載,如下:
image

修改css

默認的css代碼如下:

@font-face {font-family: "iconfont";
  src: url('iconfont.eot'); /* IE9*/
  src: url('iconfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
  url('iconfont.woff') format('woff'), /* chrome、firefox */
  url('iconfont.ttf') format('truetype'), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/
  url('iconfont.svg#iconfont') format('svg'); /* iOS 4.1- */
}

.iconfont {
  font-family:"iconfont" !important;
  font-size:16px;
  font-style:normal;
  -webkit-font-smoothing: antialiased;
  -webkit-text-stroke-width: 0.2px;
  -moz-osx-font-smoothing: grayscale;
}

.icon-nanzhuang:before { content: "\e600"; }

.icon-nvzhuang:before { content: "\e601"; }

.icon-gouwuche:before { content: "\e602"; }

我們可稍作如下修改:


  • 爲保證和mui目錄結構統一,建議將字體文件放在fonts目錄下,這樣我們需要修改@font-face下得url屬性;
  • 只兼容iOS和Android版本的話,我們僅需要ttf格式的字體即可,其它字體可以刪除;同時,我們也僅需保留-webkit前綴語法,-moz前綴部分可以刪除;

修改後的css代碼如下:

    @font-face {font-family: "iconfont";
        src:url('../fonts/iconfont.ttf') format('truetype'); /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/
    }

    .iconfont {
        font-family:"iconfont" !important;
        font-size:16px;
        font-style:normal;
        -webkit-font-smoothing: antialiased;
        -webkit-text-stroke-width: 0.2px;
    }

    .icon-nanzhuang:before { content: "\e600"; }

    .icon-nvzhuang:before { content: "\e601"; }

    .icon-gouwuche:before { content: "\e602"; }

集成mui

將iconfont.css及iconfont.ttf兩個文件分別拷貝到mui工程css及fonts目錄下,然後即可在mui中引用剛生成的字體圖標,我們以選項卡爲例,代碼如下:

    <nav class="mui-bar mui-bar-tab">
        <a class="mui-tab-item mui-active">
            <span class="mui-icon iconfont icon-nanzhuang"></span>
            <span class="mui-tab-label">男裝</span>
        </a>
        <a class="mui-tab-item">
            <span class="mui-icon iconfont icon-nvzhuang"></span>
            <span class="mui-tab-label">女裝</span>
        </a>
        <a class="mui-tab-item">
            <span class="mui-icon iconfont icon-gouwuche"></span>
            <span class="mui-tab-label">購物車</span>
        </a>
        <a class="mui-tab-item">
            <span class="mui-icon mui-icon-gear"></span>
            <span class="mui-tab-label">設置</span>
        </a>
    </nav>

主要代碼:將mui默認的icon(如mui-icon-home)替換成iconfont icon-nanzhuang,修改後預覽效果如下:

image


發佈了20 篇原創文章 · 獲贊 8 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章