制作網站往往需要使用一些圖標來提高用戶體驗,如果我們的是一些扁平化設計的圖標,我們可以選擇 SVG 或 圖標字體來提高用戶體驗。
下面對這兩種技術進行比較。
開發難度:
現在的在線工具非常強大,比如 iconmoon 的生成工具,可以根據自己的意向選擇生成內聯的 SVG 圖標或字體圖標。而我們的設計師只需要提供 SVG 格式圖標文件。使用方式和 CSS sprites 有些相同。就難易程度來講兩者差不多。
精致度
SVG 是最直接的矢量圖形了,在任何大小的情況下都能細膩的顯示圖標,尤其是在 retina 顯示屏上,效果絕佳,這是眾多開發者選擇 SVG 的最主要一個原因。
字體圖標被瀏覽器看做是字體,雖然和字體一樣可以任意放大或是縮小,但會產生很明顯的鋸齒,這造成了很糟糕的視覺效果。
視覺效果
SVG 可以是多顏色的,SVG 的各個部分可以單獨分開添加交互的動畫效果,比如鼠標划過就打開的信封,或是鼠標點擊就轉動的手表。
字體圖標是單一的整體,它是單色,添加起交互效果往往是針對整體的放大縮小,變色旋轉等等。
實際使用的表現
SVG 要比字體圖標大得多,現在流行的做法是將其放在頁面當中以減少HTTP請求。
字體圖標比較小,而且會緩存在頁面當中。它適合在一些比較大的項目中使用,比如我們希望維護一個圖標庫,這些圖標要滿足大量不一樣的需求。
兼容性
SVG 在這點上要遜於字體圖標,它並不支持IE8,只能做優雅降級。
字體圖標有着非常良好的兼容性,它兼容到IE6。
總結
字體圖標穩重,SVG瀟灑。
如果要兼容IE8及以前,使用字體圖標保持兼容性。或是在一些項目非常大,圖標很多的情況,用字體圖標會更容易維護。
如果只需支持高級瀏覽器,而網站追求一些創新,高級的視覺及交互效果,這時用SVG會是更好的選擇。