關於 SVG,如下是 MDN 的描述。html
可縮放矢量圖形(Scalable Vector Graphics,SVG),是一種用於描述基於二維的矢量圖形的,基於 XML 的標記語言。本質上,SVG 相對於圖像,就比如 HTML 相對於文本。git
SVG 是一個基於文本的開放 Web 標準。它的設計明確地保證它與 CSS、DOM,以及 SMIL 等其餘Web標準一同運做。github
SVG 圖像及其相關行爲被定義於 XML 文本文件之中,這意味着能夠對它們進行搜索、索引、編寫腳本以及壓縮。此外,這也意味着可使用任何文本編輯器和繪圖軟件來建立和編輯它們。canvas
SVG 是由萬維網聯盟(W3C)自 1999 年開始開發的開放標準。bash
而站在開發的角度來講,描述一個 SVG 就像是在描述一個頁面是相似的,或者也能夠理解就是在使用 canvas 去繪製一個自定義的圖形或者控件。利用 SVG 咱們能夠畫圖形,甚至還能夠做動畫。編輯器
SVG 的元素很是的多,這裏咱們先沒必要一個一個去詳細的瞭解,主要是先過一遍,從總體上來看一下都有哪一些元素。有的咱們一看就明白了,而有的可能不怎麼了解。相對來講,他們也是經常使用的和不怎麼經常使用的。svg
![圖片描述](//img.mukewang.com/5d43b4c70001c1ec09670605.jpg動畫
一樣,SVG 也提供了很是多的屬性。除了一些用於樣式的,還有用於事件的。spa
SVG 在 Html 中的應用,能夠內嵌或者外部引用。便可以直接在 html 中進行定義,也能夠是一個獨立的文件。具體能夠參考下面例子的用法。.net
定義 SVG
<svg class="hidden">
<symbol id="icon-arrow" viewBox="0 0 24 24">
<title>arrow</title>
<polygon points="6.3,12.8 20.9,12.8 20.9,11.2 6.3,11.2 10.2,7.2 9,6 3.1,12 9,18 10.2,16.8 "/>
</symbol>
<symbol id="icon-drop" viewBox="0 0 24 24">
<title>drop</title>
<path d="M12,21c-3.6,0-6.6-3-6.6-6.6C5.4,11,10.8,4,11.4,3.2C11.6,3.1,11.8,3,12,3s0.4,0.1,0.6,0.3c0.6,0.8,6.1,7.8,6.1,11.2C18.6,18.1,15.6,21,12,21zM12,4.8c-1.8,2.4-5.2,7.4-5.2,9.6c0,2.9,2.3,5.2,5.2,5.2s5.2-2.3,5.2-5.2C17.2,12.2,13.8,7.3,12,4.8z"/><path d="M12,18.2c-0.4,0-0.7-0.3-0.7-0.7s0.3-0.7,0.7-0.7c1.3,0,2.4-1.1,2.4-2.4c0-0.4,0.3-0.7,0.7-0.7c0.4,0,0.7,0.3,0.7,0.7C15.8,16.5,14.1,18.2,12,18.2z"/>
</symbol>
<symbol id="icon-github" viewBox="0 0 32.6 31.8">
<title>github</title>
<path d="M16.3,0C7.3,0,0,7.3,0,16.3c0,7.2,4.7,13.3,11.1,15.5c0.8,0.1,1.1-0.4,1.1-0.8c0-0.4,0-1.4,0-2.8c-4.5,1-5.5-2.2-5.5-2.2c-0.7-1.9-1.8-2.4-1.8-2.4c-1.5-1,0.1-1,0.1-1c1.6,0.1,2.5,1.7,2.5,1.7c1.5,2.5,3.8,1.8,4.7,1.4c0.1-1.1,0.6-1.8,1-2.2c-3.6-0.4-7.4-1.8-7.4-8.1c0-1.8,0.6-3.2,1.7-4.4C7.4,10.7,6.8,9,7.7,6.8c0,0,1.4-0.4,4.5,1.7c1.3-0.4,2.7-0.5,4.1-0.5c1.4,0,2.8,0.2,4.1,0.5c3.1-2.1,4.5-1.7,4.5-1.7c0.9,2.2,0.3,3.9,0.2,4.3c1,1.1,1.7,2.6,1.7,4.4c0,6.3-3.8,7.6-7.4,8c0.6,0.5,1.1,1.5,1.1,3c0,2.2,0,3.9,0,4.5c0,0.4,0.3,0.9,1.1,0.8c6.5-2.2,11.1-8.3,11.1-15.5C32.6,7.3,25.3,0,16.3,0z"/>
</symbol>
<symbol id="icon-arrow-nav" viewBox="208.3 352 4.2 6.4">
<title>arrow-nav</title>
<polygon points="212.1,357.3 211.5,358 208.7,355.1 211.5,352.3 212.1,353 209.9,355.1"></polygon>
</symbol>
</svg>
複製代碼
使用 SVG
經過 < use >< /use > 元素來使用
<a class="codrops-icon codrops-icon--prev" href="https://tympanus.net/Development/SlicedDualImageLayout/" title="Previous Demo"><svg class="icon icon--arrow"><use xlink:href="#icon-arrow"></use></svg></a>
<a class="codrops-icon codrops-icon--drop" href="https://tympanus.net/codrops/?p=32454" title="Back to the article"><svg class="icon icon--drop"><use xlink:href="#icon-drop"></use></svg></a>
<a class="codrops-icon codrops-icon--drop" href="https://tympanus.net/codrops/?p=32454" title="Back to the article"><svg class="icon icon--github"><use xlink:href="#icon-github"></use></svg></a>
複製代碼