如何使用 Svg 精靈作為圖標
已發表: 2023-01-16SVG 精靈是包含 SVG 圖像集合的 XML 文件。 這些圖像可以用作網站或移動應用程序中的圖標或插圖。 每個圖像都包含在一個單獨的元素中,並且可以緩存 XML 文件,以便可以離線使用圖標。 要使用 SVG 精靈,必須將 XML 文件加載到文檔中。 然後可以通過引用元素的 ID 使用圖像。 例如,要使用貓的圖像,XML 文件將加載到文檔中,圖像將通過其 ID 引用: 然後通過引用 ID 可以在文檔中的任何地方使用貓圖像:圖像可以使用 CSS 設置樣式,並且可以使用“x”和“y”屬性控制位置和大小:這些文件對徽標、圖表和圖標特別有用的原因有幾個。 通常,符號和圖像通過 .svg 文件定義為單獨的圖像。 另一種選擇是將單個 sva 文件添加到多個 sva 圖像。 有幾種工具可用於計算像素位置和生成 CSS 代碼。 使用 use 元素可以在頁面上使用單個元素的次數沒有限制。 外部圖像將不會在舊瀏覽器中顯示,例如 IE11 或更低版本。 為避免 HTML 標記錯誤,最好的替代方法是將完整的 SVG 插入 HTML 標記並使用其目標引用每個 Sprite。 每個單獨的角色都被分配了一個精靈類,嵌入式 CSS 指示它們默認顯示:無。可縮放圖形有兩種創建方式:手動或通過程序。 在後一種情況下,需要一行代碼。 使用矢量圖像程序時,您可以在虛擬繪圖板上繪製圖標,並使用各種形狀、顏色和路徑操作來操作它們。 在這種情況下,您可以使用 *svg 標籤將圖像直接寫入 HTML 文檔。 如果您有 VS 代碼、首選 IDE,或者您使用 HTML,則可以將 SVG 圖像用作 HTML 元素,從而將其包含在文檔中。 如果您正確地執行了所有步驟,您應該能夠創建如下所示的頁面。包含可縮放圖像的矢量圖形文件稱為 SVG 文件。當涉及到圖像格式時,可以使用各種上下文來創建 SVG 圖像。 使用 SVG 圖像時,瀏覽器支持 HTML 元素,例如 *img 或 *svg。Svg 文件可以用作圖標嗎?圖片來源:svgrepo 可縮放矢量圖形 (SVG) 的主要優點是它們可以用作您網站上的圖標因為它們是矢量圖形。 矢量圖形可以縮放為任意大小並具有相同的高質量。 由於這些文件很小並且壓縮得很好,因此您的網站加載速度不會因此變慢。可縮放矢量圖形 (SVG) 可以在使用矢量圖像格式時使用可擴展標記語言 (XML) 語法繪製。 與固定大小的像素圖像相反,SVG 是一種 XML 代碼塊,可以直接在瀏覽器中查看和呈現。 圖片可以比文字小得多,也更簡潔,可以更快地指示動作和信息。 直到電子寵物蛋、iMac 和掌上電腦進入我們的家庭的大約同一時間,SVG 圖像文件格式才可用於網絡。 通常,大多數 Web 瀏覽器不支持 SVG 格式,並且沒有意識到這一點。 然而,直到 2017 年,網絡瀏覽器由於缺乏支持而難以呈現 SVG。 當您使用圖標網絡字體或基於矢量的類型時,縮放不會有任何問題。在設計圖標時,預製圖標集為您提供了更有限的設計選項。 如果您想創建更通用的東西,請選擇 svg 文件。 可以使用手動工具或軟件程序創建 SVG 圖標。 可以使用矢量圖像程序在虛擬繪圖板上繪製圖標。 然後就可以導出.svg文件了,已經完成了。 您也可以從此 Evernote 列表中獲得免費的 SVG 圖標。 形狀的尺寸由其寬度和高度決定,而其位置由其 x 和 y 決定。 此外,您可以通過創建包含類名稱和样式的單獨樣式表來定義每個元素的樣式。 在 Ycode 無代碼生成器的幫助下,您可以更改這些圖標的顏色以及更改背景顏色。如果您需要一種通用、可擴展且易於使用的圖像格式,您應該考慮使用 svega。 由於其動畫和透明功能,它是個人和商業項目的理想選擇。 因為大多數人使用 SVG 而不是更常見的格式,它可能不受舊設備或瀏覽器的支持。如何使用 Svg Sprites?SVG Sprites 是減少對站點的 HTTP 請求數量的好方法。 它們是包含多個圖像的單個文件,並且可以使用 元素訪問每個圖像。 例如,如果您有一個名為“sprite.svg”的文件,其中包含三個圖像,您可以使用 和 元素訪問每個圖像: . 該軟件包包括一組 Mustache 模板,用於以良好的舊 CSS 或一種主要的預處理器格式(Sass、Less 和 Stylus)創建樣式表。 如果您更喜歡使用標準 API,則可以使用 Grunt 或 Gulp 包裝器來簡化您的生活。 默認情況下,Sprite 分為三種類型:mode、group 和 individual。 可以同時在不同的地方關閉輸出模式。 在以其中一種預處理器格式(Sass、LESS、Stylus 等)創建 CSS Sprite 和样式表時,您必須了解特殊注意事項。您可以注入。 將包含 >title> 和 >description> 等元素的 YAML 文件放入您的 SVG 中。 命令行版本包含一個完整的命令行工具,它允許您使用各種輸出格式。它是任何設計的重要組成部分,可以用來代表品牌或產品。 公司的圖標應該既可識別又可擴展,尤其是在智能手機和平板電腦方面。 要使用 SVG 創建圖標,首先包括代表您的圖標類的 *svg> 元素,然後包括代表您的 *use** 元素 在 svg 文件中,包括 href 屬性,後跟一個 octothorpe(箭頭),最後是圖標名稱。 可以使用以下代碼創建博客文章標題的示例:“如何使用 CSS 和 SVG 製作簡單的 SVG 圖標” svg class=”icon-title”> br>br> *xlink:href=#icon-post -title #iconposttitle 按照這些步驟,您可以輕鬆創建一個簡單的 SVG 圖標。 */octothorpe> 為什麼要使用 Svg 圖標我如何使用 SVG 精靈? 除了能夠用於獨立圖像或嵌入 HTML 之外,還可以使用 SVG。 它適用於所有主流瀏覽器,包括 Internet Explorer 9 及更高版本。 為什麼要使用 sva 圖標? 內聯 SVG 圖標會為您的文件添加一些編碼,因此如果您不介意,可以使用它們。 SVG 圖標在普通顯示器和 Retina 顯示器上看起來都很棒。 如果這很重要,請使用內聯 SVG 圖標而不是字體圖標。 SVG 圖標優於 .NET 圖標。 你如何在 React 中使用 Sprite? 從 '../letters' 重複導入; 從 '../reacts.' 重複導入導入 LetterSvg。 svg; 進入 '。 這封信被稱為 scs。 (letter, color, size) (svg className=svg-letter) 按字母類型填寫。 使用 href=*$*Letters*#letter-$letter=/svg); letterSvg.propTypes = 字母:React.Types.string,顏色:React。 導出letterSvg.default.Props時,選擇字母(A) color:#f5f5f5f5', size: 20 ; 並使用 export default letterSvg; letter: 'A'我如何使用 Svg 圖標?要使用 SVG 圖標,您需要有矢量編輯程序,例如 Adobe Illustrator、Inkscape 或 Sketch。 創建圖標後,您可以將其保存為 SVG 文件。 要在網站上使用圖標,您可以將 SVG 文件嵌入到您的 HTML 代碼中。可以通過多種方式在 HTML 和 CSS 中找到圖標,但它們最常用於 Kaliop 的前端開發團隊。 考慮到圓形,在形狀的邊緣之間放置更多的距離。 只需要指定像素擬合的尺寸,以便在低屏幕上獲得最佳結果(如果您的分辨率設置為適當的範圍)。 導出設計工俱生成的圖像時,通常會有一些標記和元數據。 此外,路徑數據(在 d 屬性中)可以非常精確。 要查看前後代碼中刪除或簡化的內容,請使用 SVGOMG 等工具。 如果我們在源代碼中硬編碼填充,我們將無法通過 CSS 代碼更改這些顏色,因此請確保單色圖標沒有此選項。如果您手動製作精靈,則應保留一個單獨的文件夾包含您個人的 SVG 圖標。 確保不需要設置樣式的插圖保存為單個 SVG 文件,並使用 <img href=url/to/illustration.svg> alt='> 將其包含在您的頁面中。 如果您要為圖像製作動畫,建議您在 HTML 頁面中包含完整的 SVG 代碼。 一些文章建議使用文本標籤來標記圖標存儲庫中的每個 SVG 文件。 用一些 JavaScript (svg4everybody,svgxuse) 填充它,它就會工作。 或者,您可以在每個頁面的 HTML 代碼中包含您的 sprite。 每種方法都有許多優點和缺點。結合兩種構建 Sprite 的方法是最有效的方法。 很大一部分 SVG 樣式屬性都是從它們的父級繼承的。 不必將 stroke-width 屬性設置為特定長度,但需要將其設置為相對於圖標局部坐標的特定值。 如果您的路徑達到視口的限制,一半的筆劃將被切斷。 可以使用一種簡單的技術來創建具有兩種不同填充值(也稱為兩種顏色)的圖標。 如果您的頁面具有合適的 HTML 結構,您的圖標會很大並且很難看清。 這可以添加到您的頁面的頭部。它有點太甜太短了。 另一種方法是在 SVG 元素中使用寬度和高度屬性。 但是,如果您必須在 CSS 中調整此圖標的大小,則可能會有點困難。 如果您使用方形或 sharish 圖標,您可以使用百分比值,因為它們大致表示圖標寬度的百分比。 要填充漸變填充,我們必須使用 sva 漸變。 CSS linear-gradient(…) 不能用於 SVG 填充屬性,因為它違反了 CSS 約定。如果您在移動設備上查看 SVG 文件,您還可以通過選擇“圖像另存為”將其保存到設備的圖庫中” 將 SVG 文件保存到設備的畫廊時,它們在將來會有用。 如果您選擇使用它們,您可以立即開始您自己的自定義插圖。為什麼 Svg 是圖標的最佳選擇因為 SVG 允許您縮放到任何尺寸而不會降低質量,它是圖標的絕佳選擇。 此外,使用 SVG,您可以更改、著色或動畫圖標的每個單獨位,這是只能在圖標字體中找到的功能。 如果您使用像素和透明度,PNG 文件比 SVG 文件更可取。我應該為圖標使用 Svg 還是 Png?因為它們是矢量圖像,它們可以縮放到任意大小並提供卓越的圖像質量。 另一方面,PNG 不受應有的瀏覽器支持。 如果必須使用 Internet Explorer 8 或更高版本,最好使用 PNG,如果不需要,則使用 SVG。與 PNG 相比,使用 SVG 有幾個優點,例如使用 sprite、圖像或內聯 SVG。 PNG 文件可以是原來的兩倍大(對於 Retina 顯示器)並且文件大小可以小一個數量級(不需要 Javascript 或 polyfills)而不會犧牲性能(不需要舊版瀏覽器)。 儘管 PNG 具有出色的設計能力,但就交付、帶寬和範圍而言,它是一個難以超越的設計工具。 如果大多數人只是展示形狀或設計並需要對其進行更改,那麼他們沒有太多理由使用 SVG。 兩者都有能力展示自己的優勢和用例,但巴布亞新幾內亞落後很多。 當處理矢量數據而不是圖像數據時,瀏覽器需要付出更多的努力。 Chrome 等現代瀏覽器具有類似 CMS 的頁面,其中包含數百個(實際上是 3-500 個)svg 圖標,這些圖標一打開就會讓瀏覽器掛起 5 到 7 秒。如前所述,顯著增加由於頁面上的 SVG 數量而導致的瀏覽器負載。 如果是這種情況,您應該將 SVGS 轉換為網絡字體。 作為第二個選項,恢復為普通的舊 PNG。 SVG 圖標缺乏與 PNG 圖標相同的質量。 如果你不想處理真實的照片,你總是可以使用 .html 而不是 Svg。 免費的 SVG 圖標現在可以在現代瀏覽器中使用,可以保存在服務器上並通過瀏覽器的服務器端代碼加載到客戶端。 它們不支持 CSS 3D 變換,除了不支持 CSS 3D 變換外,這在與按鈕結合使用時可能會導致問題。也可以在不損失質量的情況下縮小或放大 SVG 圖標。 雖然圖標字體在縮放時通常不那麼明顯,但它們通常效果不佳。 最後,sVG 圖標可以轉換為按鈕、選項卡和其他與用戶交互的元素。 另一方面,圖標字體通常不用作用戶界面元素。 隨著矢量圖形設計變得越來越流行,越來越多的人轉向 sva 來設計他們的圖標和圖形。 然而,雖然 SVG 圖像的尺寸比 JPEG 圖像大,但它們也具有更大的靈活性並且更易於編輯。 此外,它們可以按比例放大或縮小而不會降低質量,並且它們可以用於創建按鈕、選項卡和其他用戶界面元素。 如果您想要一種更靈活和可擴展的方式來創建圖形,請使用 svega.Svg Vs。 Png 用於徽標和圖標為了獲得更好的效果,請使用矢量文件(例如 sva)製作徽標或圖標。 有多種用於精細細節和紋理的 PNG,但 SVG 更常用於徽標、圖標和其他平面圖形。 因為較舊的瀏覽器可能不支持 SVG,您可能需要考慮使用 PNG 代替。如何在 HtmlSVG 精靈中使用 Svg 精靈是減少對您的頁面發出的 HTTP 請求數量的好方法。 它們也非常適合減小頁面的文件大小。 以下是如何使用它們:首先,為您的 SVG 文件創建一個文件夾。 接下來,在該文件夾中創建一個名為“sprite.svg”的文件。 該文件將包含所有 SVG 圖標。 接下來,打開您的 HTML 文件並將以下代碼添加到該部分: …… 將“/path/to/sprite.svg”替換為您的 sprite 文件的路徑。 將“icon-name”替換為您要使用的圖標的名稱。 現在,當您在瀏覽器中查看您的 HTML 文件時,您應該會看到您指定的圖標。因為它們是 XML 文檔,所以它們是 application/svg 的內容類型至關重要。 由於您的 SVG 文件的內容類型未正確定義,您的瀏覽器可能無法解釋它。 如果您使用的是 SVG,例如 img src=”image.svg”> 或 CSS 背景圖像,並且文件已正確鏈接並且所有內容都正確顯示,但瀏覽器不顯示它,這可能是因為您的服務器正在提供帶有 HTML 頁面的文件,可以直接嵌入 SVG 元素。 如果您的 SVG 文件提供了正確的內容類型,那麼您的瀏覽器應該可以解釋它。Svg Sprites:為您的圖形製作動畫的最佳方式 HTML 嵌入可以提供一種創建自定義圖形的簡單方法,而無需矢量圖形編輯器. 除了 SVG,您還可以使用 sprites 輕鬆生成動畫圖形。Svg Sprite 示例 SVG sprite 的一個示例是創建社交媒體圖標包。 單獨的圖標將保存為單獨的 SVG 文件,然後將創建一個引用所有單獨圖標的主文件。 當在瀏覽器中打開主文件時,各個圖標將顯示為單個圖像。雖然我們喜歡圖標字體,但也有一些缺點。 使用 gulp 創建 Sprite 很簡單。 我們將插件鏈接到我們的網站(我們在全球範圍內安裝它們)。 gulpfile:: 插件可以在這裡找到。 設置包含標籤符號的 ansvg 文件。 當我們指出我們需要圖標的地方時,它們必須被縮小。 資產目錄只是一種將資產放在更方便的位置的方法。如果從圖標中刪除樣式、填充和描邊屬性,您將無法查看通過 css 指定的樣式。 請完成任務並運行它。 您必須附上頁面。 我們有一個可以通過 Sprite 連接圖標的工作系統,但還有更多的步驟需要採取。 如果您從 Illustrator 導出圖標,您必須先啟用像素網格,然後調整圖標的大小和位置。 圖標也應該從筆劃轉換而來。 這就是您需要在 iconmoon 文檔中執行的操作。使用 Sprites 減少文件大小並提高速度當您創建一個 sprite 時,您實際上是在創建一個將在您的應用程序中多次使用的圖像。 因此,使用 Sprite 來節省文件大小並提高應用程序的速度是一個好主意。 為了在你的 React 應用程序中使用 Sprite,你必須首先將它導入到你的項目中。 這可以通過將以下行添加到項目的 package.js 文件來完成。 要採取行動,請轉到 https://www.npmjs.com/package/react-svg。 然後必須創建 LetterSvg 類的一個實例。 本課程將討論字母的字母、顏色和大小。 你的參數是你想用作精靈的字母的名稱。 顏色參數告訴我們精靈是什麼。 大小參數定義為字母的像素。 創建 SVG Sprite 後,使用 LetterSvg 類創建它。 使用 useHref() 方法可以做到這一點。 必須在此方法中指定 Sprite 文件的 URL。 要確定精靈的顏色和大小,請使用 fill() 和 width() 方法。 完成設置精靈後,您可以使用 addChild() 方法將其添加到您的 React 應用程序中。 您需要將元素的名稱添加到此方法中,並且它必須是該元素的子元素。 最後,您可以使用 animate() 方法為 Sprite 設置動畫。 此方法的參數是持續時間和緩動。 動畫完成所需的時間由動畫的持續時間決定。 動畫類型將由緩動參數指定。 動畫有三個選項:default、cubic-bezier 和 animate。 在這種情況下,可以將一個新的 sprite 添加到您的 React 應用程序中以使其更具動態性,這要歸功於它的添加。 使用 sprite,您可以加快應用程序用戶界面的開發過程。Svg-sprite-loader 如果您正在尋找一種創建 SVG sprite 的方法,那麼您可能需要查看 svg-sprite-loader。 這個庫可以很容易地創建和維護你的 SVG 精靈,而且它也相對容易使用。Webpack 2.0 的遷移指南現在可用。 它可以在 v0 分支的 README 中找到。 目標 webpack 的配置選項是默認確定的。 如果要設置自定義行為,請使用此方法為您的實施模塊定義路徑。 在 SpriteFilename 選項中,您可以使用 [chunkname] 模式為每個塊生成多個精靈。 返回 SVG 文件絕對路徑的自定義函數可以根據包含或限制的加載器規則生成各種精靈。在 React 中使用精靈要在 React 中使用精靈,我們必須首先創建一個組件並傳入作為屬性的 Sprite id。 下面的代碼創建了一個簡單的 LetterSVG 組件,它使用 sprite id 來顯示字母。