css中Font字型小表徵圖應用

來源:互聯網
上載者:User

我們知道在頁面上傳入小表徵圖有多種方式,比如我們使用比較多的是css sprite背景圖片定位,就是將很多小表徵圖整合到一張大圖,然後使用CSS定位背景。還有一種比較現代的方式是使用font字型表徵圖,它利用@font-face原理載入表徵圖字型庫,然後調用表徵圖。


使用css sprite方式非常方便,可以有很多色彩繽紛的表徵圖,而且相容性好,但是缺點就是表徵圖不能縮放,或者說縮放了會失真,另外維護也不方便,修改一個表徵圖要對整張大圖就行修改,並且定位像素需要藉助PS等工具確定位置。而使用表徵圖字型庫越來越受開發人員青睞,它的維護簡單,而且對表徵圖縮放自由,隨時都可以展示高清的表徵圖,可以添加陰影製作效果和動畫效果,設定也非常方便,唯一差點的就是表徵圖顏色比較單一,就是設定的時候只能設定一個表徵圖為單一顏色。下面我們來看下如何使用font字型小表徵圖。
HTML

目前市面上有很多字型表徵圖庫,有收費的也有免費使用的。常見的有icomoon,Font-Awesome 以及 Glyphicon Halflings,Glyphicon在bootstrap下使用時免費的。當然國內阿里系也開放了自己的表徵圖庫。
本文講解下使用icomoon字型庫,我們可以在官網上選擇喜歡的字型表徵圖然後下載並部署到項目中,當然也可以自己製作表徵圖然後上傳到官網上。下載好的字型庫,在一個fonts/的檔案夾裡。我們先布置好html結構:

<ul class="icons">
    <li class="sp"><i class="icon-spades spades"></i> 黑桃K</li>
    <li class="red"><i class="icon-file-picture"></i> 照片</li>
    <li><i class="icon-tablet"></i> iPad</li>
    <li><a href="#"><i class="icon-bubbles"></i> 評論</a></li>
</ul>

我們在上面的html代碼中,給元素li裡添加了<i>,然後加上class屬性,class值就對應了css檔案裡的字型表徵圖樣式了。
CSS

首先我們使用@font-face命名字型名稱,以及載入的字型檔,需要載入多個字型檔以相容各瀏覽器和系統。然後定義class含有icon的樣式,注意其中使用了消除鋸齒處理,就是圖片放大的時候不會出現邊緣鋸齒現象,然後使用偽類,設定content即表徵圖內容。

@font-face {
    font-family: 'icomoon';
    src:    url('../fonts/icomoon.eot?42vx6u'); /* IE9 相容模式 */
    src:    url('../fonts/icomoon.eot?42vx6u#iefix') format('embedded-opentype'),
        url('../fonts/icomoon.ttf?42vx6u') format('truetype'),
        url('../fonts/icomoon.woff?42vx6u') format('woff'),
        url('../fonts/icomoon.svg?42vx6u#icomoon') format('svg');
    font-weight: normal;
    font-style: normal;
}
 
[class^="icon-"], [class*=" icon-"] {
    font-family: 'icomoon' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
 
    /* 消除鋸齒處理 =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
 
.icon-spades:before {
    content: "\e900";
}
.icon-file-picture:before {
    content: "\e901";
}
.icon-tablet:before {
    content: "\e902";
}
.icon-bubbles:before {
    content: "\e903";
}

然後,我們運行下html頁面,是不是可以看到幾個表徵圖了,方便實用吧。
如果想給表徵圖定義動畫效果,可以使用css來實現。

.spinner{
    -webkit-animation: spinner 1s infinite linear;
    animation: spinner 1s infinite linear;
}
 
@-webkit-keyframes spinner{
    0%{
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg);
    }
    100%{
        -webkit-transform: rotate(359deg);
        transform: rotate(359deg);
    }
}

以上代碼定義了表徵圖旋轉動畫,我們可以結合js實現這樣的效果:當滑鼠滑上表徵圖時展示表徵圖旋轉動畫,當滑鼠離開時,停止旋轉動畫。這個效果的代碼大家可以參照demo中的源碼。demo中我還加上了Font Awesome字型表徵圖樣本和Glyphicons字型表徵圖樣本,大家可以查看demo或下載源碼瞭解。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.