SVG圖標(biāo)是SVG圖像,用作Web應(yīng)用程序或移動應(yīng)用程序內(nèi)的圖標(biāo)或圖像按鈕。SVG圖標(biāo)也可以用于徽標(biāo)。此SVG圖標(biāo)教程說明了如何創(chuàng)建自己的SVG圖標(biāo),以及在何處可以下載高質(zhì)量的預(yù)制SVG圖標(biāo)。
對圖標(biāo)使用SVG的優(yōu)點是,可以輕松地按比例放大和縮小圖標(biāo),具體取決于要在應(yīng)用程序中顯示的位置以及顯示應(yīng)用程序的屏幕尺寸。SVG圖標(biāo)具有優(yōu)于位圖圖形的優(yōu)點,即按比例放大或縮小時它們?nèi)匀豢雌饋聿诲e。位圖圖形在按比例放大時趨于像素化,而在按比例縮小時會失去質(zhì)量(像素)。
如在Web瀏覽器中顯示SVG所述,有幾種方法可以在Web瀏覽器中顯示SVG,作為HTML頁面的一部分。 但是,在顯示SVG圖標(biāo)時,使用HTML的img元素來顯示圖標(biāo)是最容易的,HTML img元素可以輕松地放大和縮小SVG圖標(biāo)的大小。
這是img顯示SVG圖標(biāo)的示例元素:
<img src="svg-icon.svg">
要放大或縮小SVG圖標(biāo)的大小,只需使用CSS width或height樣式屬性。下面是添加了CSS Height Style屬性的img元素示例:
<img src="svg-icon.svg" style="height:32px">
要在放大或縮小SVG圖標(biāo)時保持其長寬比,應(yīng)僅為其中一個width 或height - 而不能同時設(shè)置這兩個值。 當(dāng)僅設(shè)置其中一個屬性的寬度時,瀏覽器將沿另一個軸相應(yīng)縮放SVG圖標(biāo),以便SVG圖標(biāo)保持其縱橫比。
有時您可能需要創(chuàng)建自己的SVG圖標(biāo)。SVG圖標(biāo)只是包含在它自己的SVG文件中的SVG圖像。下面是一個非常簡單的圓形圖標(biāo),由SVG circle元素組成:
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <circle cx="64" cy="64" r="64" style="fill: #00ccff;"></circle> </svg>測試看看 ?/?
下面是此SVG圖標(biāo)與img元素一起顯示時的外觀:
但是,當(dāng)您使用img元素顯示此SVG圖標(biāo),并放大和縮小img元素的大小時,SVG圖標(biāo)不會放大或縮小。 相反,或多或少會顯示SVG畫布。 下面是將img CSS Height屬性設(shè)置為32的示例:
請注意,如何僅顯示圓圈的一部分,而不是按比例縮小整個圓圈。
造成此問題的原因是SVG圖像文件缺少某些信息。您必須為SVG viewBox屬性設(shè)置一個值 。SVG viewBox屬性指定應(yīng)顯示多少SVG畫布(在X和Y方向上)。
在我們的示例中,我們只想顯示SVG畫布的包含圓圈圖標(biāo)的部分。該區(qū)域從點0,0延伸到點128,128(圓的半徑為64,以64,64為中心)。 使用SVG Viewbox屬性,我們可以指定只渲染SVG畫布的這一區(qū)域。 下面是設(shè)置了Viewbox值的SVG圓圖標(biāo)的外觀:
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 128 128"> <circle cx="64" cy="64" r="64" style="fill: #00ccff;"></circle> </svg>測試看看 ?/?
這是顯示的SVG圖標(biāo),高度分別為32、48和64像素: