搜尋
首頁web前端css教學超越'使用”元素的自動SVG壓縮

超越使用”元素的自動SVG壓縮

如果您繪製自己的SVG文件或從Internet下載它們,那麼SVG-編輯或SVGOMG之類的工具是您的朋友。使用這些工具壓縮文件僅需幾秒鐘,並且可以大大降低您的文件大小。但是,如果您需要使用SVG內聯用來與代碼進行動畫或互動,那麼對於代碼可讀性,您仍然可以做很多事情。

重複使用SVG的並不總是一個選擇,但是當它是時,您將不後悔花幾分鐘的時間將其付諸實踐。

在本文中,我將展示一個示例,我能夠利用這一元素的大量優勢 - 不僅是為了保持文件大小,而且還可以更清晰地標記,該標記變得更加清晰,易於維護。

這是我需要使用的第一個設計。它最初是在Illustrator中創建的:

查看以下代碼,這是直接從軟件導出的原始文件,重2.05kb:

這根本不是一個重的文件。但是,打開它,您會發現有很多空的標籤,棄用的命名空間,不必要的空白空間,逗號和軟件應用的額外信息。這使得代碼很難使用,煩人的掃描並為文檔中的數百行創建了一個很大的滾動。

您還會注意到該文件確實使用了元素,但並非以最佳方式使用。那不是軟件的錯!原始文件中的每個宇航員插圖都有一個剪裁面具:一個無形的圓圈,就像一個窗口一樣,我們可以看到我們的角色。沒有它,宇航員的訴訟將在圓圈外面氾濫成災。在插畫家中,有幾種方法可以避免這種情況,例如使用探路者選項裁剪這些額外的零件。這樣,我們將獲得一些字節,並避免僅使用一個額外的圓圈來剪切我們不會顯示的圖形信息。文件的壓縮從軟件開始。儘管如此,如果我們不想編輯原始文件,我們還可以改進代碼。

用SVGOMG壓縮SVG並保持默認選項不會付出任何努力,您將獲得一個重量為1.46kb的文件。與原始大小相比,這是30%的降低,圖形看起來完全相同。

重複使用內容

這將需要通過SVG並進行一些調整。我知道此選項需要更多時間來了解上一個示例,但這並不像看起來那樣困難。

我們有一個重複的元素,即圓圈內的宇航員。那就是我們將在SVGOMG上壓縮的一種。結果看起來像這樣:

 <svg xmlns="“" http:> .st3,.st4 {填充:#ffcb2f; stroke:#12192c; streose width:1.4891; stroke-miterlimit:10} .st4 {fill:#69b2b1} 
<circle cx="“" cy="“" r="“" fill="“#12192C”/">   
<circle cx="“" cy="“" r="“" fill="“#f6a2a4”/">   
<defs> <circle cx="“" cy="“" r="“"></circle> </defs>   
<clippath>  </clippath>
<g clip-path="“" url _>     
     
<path d="“" m74.3 m31.8 .7-c0 .7-.6 z cx="“" cy="“" r="“"></path>     
<circle cx="“" cy="“" r="“"></circle>     
   
</g> 
</circle></circle></svg>

第一建議:

  1. 將內容移動到CSS文件(假設您可以使用SVG內聯用戶,並且文檔中鏈接了樣式表)。
  2. 用對您有意義的東西重命名ID。
  3. 將這些複雜的數字(例如“卒中)=“ 1.489”)圓形亂七八糟,以觸及寬度=“ 1.5”。如果您在Illustrator中調整了向量大小,則可以選擇縮放邊框,這可能會發生。
  4. 由於我們的行程線上的Join是圓形的,因此請刪除中風限制=“ 10”,因為我們不需要它。
  5. 該代碼將是我們的宇航員模板。我們需要將所有內容包裝在一個組中,向該組添加ID並將其放置在標籤中。請注意,我們已經有一個元素,其中有一個圓。我們可以刪除它,因為它將是較大的標籤的一部分。

請注意,前兩個圓圈的形狀具有不同的半徑和顏色。我們可以保持較小的速度並添加足夠大以達到相同的效果的效果 - 同樣,我們可以避免使用Illustrator中帶有邊框的圓圈。

另一個重要的是,我們當前的視圖框太小,無法構建。讓我們變得更大,並在X軸上添加一些負空間,以便我們可以開始從中間克隆宇航員。

要了解有關Viewbox的更多信息,請查看Amelia Wattenberger的《 Scaling Svering Svg》的精美指南。

我們將以這樣的方式結束:

 <svg xmlns="“" http:>
  <g>
   <circle cx="“" cy="“" r="“" fill="“" currentcolor stroke="“#12192c”" stroke-width="“"></circle> <clippath> <circle cx="“" cy="”" r="”"></circle> > > > > > > > > > > > > > > > > > > > > > > > > > > > >
   <g clip-path="“" url>  <path d="”" .7-.7-.5></path> <circle cx="“" cy="”" r="“"></circle> <ciripe cy r="“"></ciripe>  <path fill="“" none streoke="“#12192c”" stroke-width="“" stroke-linecap="”" rond d="“" m76.3>
 
</path></g></clippath></g></svg>

內部的內容不會在任何地方渲染。要開始克隆我們的宇航員,我們需要將其ID鏈接在元素中:

 

Xlink:自SVG2以來,HREF被棄用,但最好將其用於兼容目的。您可以在現代瀏覽器中使用HREF,但是我在Safari上對其進行了測試,並且在撰寫本文時也無法使用。如果您使用使用:HREF,請確保在SVG標籤中包含此名稱空間:XMLNS:XLINK =“ http://www.w3.org/19999/xlink(如果您決定使用HREF,則不需要它)。

現在,我們可以將相應的文本添加到第一個圖中,並將其與變換屬性對齊。我們最好將這兩個元素放在一個小組中,因此將來我們將能夠將整個小組轉換為我們想要的位置:

 <g transform="“轉換(-95">
  
  <text transform="“轉換(25">技術領導者</text>
</g>

連接線是可以直接使用直接繪製的簡單形狀。路徑看起來很恐怖,但是對於矩線來說,無需擔心。我將解釋此代碼:

 

d =“”是用於數據的,這就是我們將命令放置的地方。 M是將我們的手移到我們開始繪畫的地方(但這沒有繪製任何內容)。 -4 200意味著我們將鉛筆放在左側的四個單元,將200個單元放在視圖框的底部(遵循SVG坐標系的方向)。 v是開始繪製垂直線的命令,該垂直線將從此位置轉到-25個單位。 H用於水平,因此我們在從那裡到200到200的線。感覺就像徽標作家。

我以三個路徑分開了線,但是在一系列命令後,我們只能使用一個帶有M值的線,以移動我們的手並開始從坐標系中的新點開始繪製。

看看最終文檔。現在,該文件重779個字節,並具有12行可讀和可擴展的代碼:

如果我們在中定義的屬性中聲明任何值,則由於元素的性質,不可能在其克隆中更改它。這就是為什麼在上面的示例中,主圓的填充被用電流彩色的值代替,以控制所有復制的背景。 CurrentColor將繼承該元素的CSS顏色值(或上方的任何元素)。在SVG中,我正在為某些複製的宇航員添加一類,並在CSS中添加顏色值。這樣,我將能夠在該類中更改元素的所有實例。要了解有關以及如何設計其內容的更多信息,Sara Soueidan的這篇文章擁有您需要知道的一切。

準備好此代碼後,我們將能夠更輕鬆地將圖形擴展到類似的內容:

以下是並排比較可讀性和代碼量的三個示例,我們從24110條整齊的行:

以上是超越'使用”元素的自動SVG壓縮的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
每周平台新聞:Galaxy Store的Web應用程序,Tappable Stories,CSS Subgrid每周平台新聞:Galaxy Store的Web應用程序,Tappable Stories,CSS SubgridApr 14, 2025 am 11:20 AM

在本週的綜述中:Firefox獲得了類似鎖匠的力量,三星的Galaxy Store開始支持Progressive Web Apps,CSS Subgrid正在Firefox發貨

每周平台新聞:Internet Explorer模式,搜索控制台中的速度報告,限制通知提示每周平台新聞:Internet Explorer模式,搜索控制台中的速度報告,限制通知提示Apr 14, 2025 am 11:15 AM

在本週的綜述中:Internet Explorer進入Edge,Google搜索控制台吹捧新的速度報告,而Firefox給出了Facebook&#039; s Notification

CSS自定義屬性的範圍的功率(和樂趣)CSS自定義屬性的範圍的功率(和樂趣)Apr 14, 2025 am 11:11 AM

您可能至少已經對CSS變量有點熟悉了。如果沒有,這是兩秒鐘的概述:它們真的稱為自定義屬性

我們是程序員我們是程序員Apr 14, 2025 am 11:04 AM

構建網站正在編程。編寫HTML和CSS正在編程。我是程序員,如果您在這裡閱讀CSS-Tricks,那麼您很有可能是您

您如何從網站上刪除未使用的CSS?您如何從網站上刪除未使用的CSS?Apr 14, 2025 am 10:59 AM

在這裡,我想預先知道的是:這是一個很難的問題。如果您降落在這裡,因為您希望指向您可以運行的工具

圖片中的圖片網絡API簡介圖片中的圖片網絡API簡介Apr 14, 2025 am 10:57 AM

圖片中的圖片在2016年發行了Macos Sierra,在Safari瀏覽器中首次出現在網絡上。這使用戶可以彈出

使用Gatsby組織和準備圖像以使圖像模糊效果的方法使用Gatsby組織和準備圖像以使圖像模糊效果的方法Apr 14, 2025 am 10:56 AM

蓋茨比(Gatsby)進行了出色的處理和處理圖像。例如,它可以幫助您節省圖像優化的時間,因為您不必手動

哦,嘿,填充百分比基於父元素的寬度哦,嘿,填充百分比基於父元素的寬度Apr 14, 2025 am 10:55 AM

今天,我學到了一些有關基於百分比的(%)填充的知識,我腦海中完全錯了!我一直認為百分比填充是基於

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中