如何在 Angular 中使用 Svg

已發表: 2023-02-15

在 Angular 中使用 SVG 是一個簡單的過程。 首先,您需要下載並安裝 Angular-SVG 庫。 然後,您可以將以下代碼添加到您的 Angular 項目中: ... 這將在您的 Angular 項目中創建一個 SVG 元素。 然後,您可以在元素內添加自己的 SVG 代碼。

Angular-svg-icon 是 Angular 14 服務和組件,支持內聯生成 SVG 文件。 CSS 和代碼可用於輕鬆設置樣式。 可以使用此服務的圖標註冊來加載和緩存可通過其 URL 索引的 SVG。 如果要使用默認的 forRoot() 函數,則必須使用 forRoot() 顯式導入該模塊。 Angular-svg-icon 是一個 Angular 組件,允許您通過繼續使用 AngularJS 方法輕鬆地內聯 SVG。 要讓它工作,您必須先刪除文件的高度和寬度。 如果SVG 源是內聯的,則可以使用 CSS 輕鬆地為圖形設置樣式。

只要不對數據 URI 進行編碼,SVG 就可以在 CSS 中使用,但在基於 Webkit 的瀏覽器中不受支持。 如果您使用 encodeURIComponent() 對 SVG 進行編碼,它將在任何地方工作。 為了有效,必須存在此類型的屬性 xmlns:xmlns=' http://www.w3.org/2000/svg'。 如果沒有這樣的東西,它會自動添加。

我們可以在 Angular 中使用 Svg 嗎?

作為模板,您可以在 Angular 應用程序中使用 SVG 文件。 使用 SVG 作為模板時,指令和綁定與使用 HTML 模板一樣簡單。 該技術可用於根據需要生成交互式圖形。

HTML 和 Angular 都使用 Angular 模板來處理 sva。 結合這兩個組件將使您可以輕鬆地將交互式控件和狀態集成到移動和 Web 應用程序中。 使用基於 SVG 的模板可以增強 Angular 框架的功能。 現在許多網站都使用 SVG** 操作,這在當今的網頁上很常見。 在這篇文章中,我將向您展示如何使用圖像在其上疊加網絡圖圖像。 在本次演示中,我將向您展示如何在 Figma 上將 .svg 文件導入為簡單的 SVG 圖像。 因為我在這個項目中使用的圖表歸我以前的公司所有,所以我將使用另一個圖表來演示這個概念。

我們從上面的 Dom 樹中觀察到,您不需要熟悉 SVG 就可以理解它。 今天,我們將向您展示如何以角度使用此圖像。 第一步是創建一個可以用作模板的 Angular 組件。 因此,組件和模板描述如下:

為什麼你應該考慮使用 Png 或 Jpg 而不是 Svg

雖然它仍然被廣泛使用,但如果您想讓您的圖形更吸引眼球,使用 SVG 是值得的。 考慮更簡單的格式(如 PNG 或 JPG)是否是更好的選擇。 您可以通過使用在所有設備上看起來都很棒的內聯圖形來節省帶寬並保持頁面精簡。

我如何在 Angular 12 中使用 Svg 圖標?

我如何在 Angular 12 中使用 Svg 圖標?
圖片來自 – icon-icons.com

SVG 圖標是為 Angular 12 應用程序添加額外細節和潤色的好方法。 有幾種不同的方法來使用它們,但最簡單的方法是將它們作為背景圖像簡單地包含在您的 CSS 中。 這是一個簡單的例子:.icon { background-image: url('path/to/icon.svg'); 這適用於大多數簡單的圖標,但如果您需要對圖標進行更多控制(例如,如果您想要更改其顏色),則需要使用不同的方法。

使用 SVG 圖標的 Web 應用程序更有可能在其應用程序中顯示圖標。 它們可以縮放到任何尺寸而不會降低質量,並且可以更改為任何顏色。 缺點是顯示它們很困難,因為要使用 XML 代碼來顯示它們。 借助一些簡單的工具,在 Angular 應用程序中使用 SVG 非常簡單。 您可以使用 SvgIconRegistryService 使用 SvgIconRegistryService 為您的應用程序加載圖標。 如果你有經常使用的圖標,你不需要弄亂你的 AppComponent 文件來加載它們。 當您的應用程序啟動時,您將在加載這些圖標後立即獲得這些圖標。 是否要加載SVG 數據或 XML 數據文件由您決定。


Angular Svg 組件

Angular SVG 組件是一種組件,可幫助您將可縮放矢量圖形 (SVG) 圖像嵌入到 Angular 應用程序中。 有多種方法可以創建Angular SVG 組件,但最簡單的方法之一是使用 Angular CLI。

不要引用 SVG 的實際克隆,而是使用“symbol”和“use”HTML 元素。 這篇文章詳細解釋了為什麼這是最好的行動方案,非常值得一讀。 雖然使用封閉的影子 DOM 可能有好處,但也有一些缺點。 如果使用 JavaScript,則無法訪問或操作 SVG 的 viewBox。 我們可以通過圖片寬高的inheritance,圖片的fill和height的currentColor等屬性來設置SVG的填充和輪廓。 將次要顏色的不透明度設置為 false 會自動使 SVG 雙色。 您必須知道不能簡單地將文件鏈接到 .sva 文件。

擴展後,必須將散列標籤的值以及您的 ID 名稱添加到文件名稱的末尾。 如果你在一個文件中有多個 SVG 文件,你可以在 http 請求中將它們全部保存為 svega 文件,也稱為 sprites。 在該文件中,您必須為每個 SVG 使用唯一的 ID。 在使用“SVG”選擇器之前,確保寬度和高度設置為繼承。

Angular 使用資產中的 Svg

Angular 可以通過將文件包含在資產文件夾中並在組件中引用它來使用資產中的 svg 文件。

我們將使用 Material Icons 字體組件作為教程的重點。 該組件還將支持自定義 SVG 圖標。 代碼可以在 GitHub 存儲庫中找到。 您將需要Angular v4.2 + 的一些基本知識才能完成這篇文章。 本教程是使用 Angular 5.2 plus 和 Angular Material 10.1 編寫的。 在本教程中,我們將使用心情圖標(類似於笑臉的符號):來做鬼臉。 在 Material Design 網站上,您可以找到完整的 Material 圖標列表。

您現在可以在以下步驟中使用 mat-icon 屬性來顯示 SVG。 您可以將圖標標籤添加到 app.html 選項卡的輸入屬性,方法是打開它並插入圖標標籤。 請導航到 src/app/app.html。 到目前為止我們有什麼? 您可以通過轉到應用程序的瀏覽器來查看具有材質樣式的自定義圖標。 可以將 MatIconRegistry 移至服務類以使其更清潔且更易於維護。

什麼時候不應該使用 Svg?

因為 SVG 是基於矢量的程序,所以它無法渲染具有大量精細細節和紋理的圖像。 使用 SVG 的最佳方式是使用徽標、圖標和其他使用更簡單顏色和形狀的平面圖形。 此外,雖然許多現代瀏覽器支持 SVG,但舊瀏覽器可能無法以正確的方式支持。

Svg 文件非常適合網頁設計!

因為它們可擴展且易於編輯,所以選擇 SVG 文件進行網頁設計至關重要。 此外,由於其 SEO 友好性,您的網站在搜索引擎中將更加可見。 由於 SVG 代碼的加載速度比圖像代碼快,因此您的網站加載速度也會更快。

Svg 圖標

SVG 圖標是基於矢量的,這意味著它們可以縮放到任何大小而不會降低質量。 它們可用於網站、應用程序和任何其他數字媒體。

SVG(Scalable Vector Graphics)使用可擴展標記語言(XML)語法,是一種可以繪製的矢量圖像格式。 直接提供給瀏覽器並在瀏覽器中呈現的 XML 代碼塊也稱為 SVG。 圖像可以充當觀察細節的眼睛,提供比文字更快的信息處理。 大約在電子寵物蛋、iMac 和 Palm Pilots 進入我們家庭的同時,SVG 圖像文件最初在網絡上可用。 大多數網絡瀏覽器都沒有支持 SVG 格式的計劃,也沒有意識到這一點。 直到 2017 年, Web 標準 SVG才開始以可接受的方式呈現。 因為它們是矢量,所以 SVG 和圖標網絡字體都可以毫無問題地按比例縮小。

在設計選項方面,預製圖標更為有限。 如果您想獲得更多功能,.VQ 文件是最佳選擇。 可以手動或使用工具創建 SVG 圖標。 可以使用矢量圖像程序在虛擬繪圖板上繪製圖標。 之後,導出 .svg 文件。 或者,您可以從此 Evernote 列表中獲取現成的 SVG 圖標。 形狀的尺寸由其寬度和高度定義,而其位置由其 x 和 y 定義。 類名也可以在單獨的樣式表 CSS 文件中設置為 <svg> 或 <rect> 元素,以及它們的樣式。 您可以使用 Ycode 圖標顏色選擇器直接在 Ycode 無代碼生成器中更改這些圖標的背景顏色。

因此,使用 SVG 的矢量圖形更可取。 通過更好地控製文本,可以更詳細地編輯顏色、過渡和動畫。 如果您想使用基於矢量圖的圖形,可以輕鬆自定義矢量圖形。

如何使用 Svgs 創建具有專業外觀的圖標

因為 svg 文件看起來更專業,所以我更喜歡它們而不是圖標。 但是,只要您選擇使用 vgs,就可以選擇這樣做。