SVG MDN 學習指南

一、什麼是 SVG ?

SVG,即可縮放矢量圖形(Scalable Vector Graphics)。

它是一種基於 XML 的標記語言,可以創建複雜的矢量圖形。

與位圖不同,矢量圖形可以無限縮放,而不會失去清晰度。這使得 SVG 成為一種非常方便的多媒體圖形格式,特別適合在網頁上使用。

下面是一個簡單的 SVG 示例:

<svg width="100" height="100">
  <rect x="10" y="10" width="80" height="80" fill="red" />
</svg>

二、SVG 元素

SVG 通過在頁面上嵌入元素來創建圖形。以下是一些常用的 SVG 元素:

1. <rect> 元素

<rect> 元素創建一個矩形。可以設置它的位置、大小、顏色等屬性。

<svg width="100" height="100">
  <rect x="10" y="10" width="80" height="80" fill="red" />
</svg>

2. <circle> 元素

<circle> 元素創建一個圓形。可以設置它的位置、半徑、顏色等屬性。

<svg width="100" height="100">
  <circle cx="50" cy="50" r="40" fill="blue" />
</svg>

3. <line> 元素

<line> 元素創建一條直線。可以設置它的起點和終點的坐標、顏色等屬性。

<svg width="100" height="100">
  <line x1="10" y1="10" x2="90" y2="90" stroke="black" />
</svg>

4. <text> 元素

<text> 元素在 SVG 中創建文本。

<svg width="100" height="100">
  <text x="50" y="50" font-size="20" fill="black">Hello SVG!</text>
</svg>

5. <path> 元素

<path> 元素在 SVG 中創建複雜的路徑。

<svg width="100" height="100">
  <path d="M10 10 L50 90 L90 10" stroke="black" fill="none" />
</svg>

三、SVG 屬性

SVG 元素可以設置許多屬性,用於調整它們的外觀、位置和交互。以下是一些常用的 SVG 屬性:

1. width 和 height 屬性

width 和 height 屬性定義了 SVG 元素的寬度和高度。

<svg width="100" height="100">
  ...
</svg>

2. x 和 y 屬性

x 和 y 屬性定義 SVG 元素的左上角的坐標。

<svg>
  <rect x="10" y="10" ... />
  <circle cx="50" cy="50" ... />
  ...
</svg>

3. fill 和 stroke 屬性

fill 和 stroke 屬性分別用於設置 SVG 元素的填充顏色和描邊顏色。

<rect fill="red" stroke="black" ... />
<circle fill="blue" stroke="black" ... />
<line stroke="black" ... />
<text fill="black" ... > ... </text>
<path stroke="black" fill="none" ... />

4. transform 屬性

transform 屬性用於旋轉、縮放、平移和傾斜 SVG 元素。

<rect transform="rotate(45)" ... />
<circle transform="scale(2)" ... />
<line transform="translate(20,20)" ... />
<text transform="skewX(45)" ... >...</text>
<path transform="scale(3) rotate(30)" ... />

四、SVG 交互

SVG 可以響應用戶交互,例如鼠標移動、點擊等。下面是一些常用的 SVG 交互事件:

1. onclick 事件

onclick 事件在用戶單擊 SVG 元素時觸發。下面的示例會在每次單擊時改變矩形的顏色。

<svg>
  <rect id="myRect" fill="red" width="100" height="100"
    onclick="document.getElementById('myRect').setAttribute('fill', 'blue');" />
</svg>

2. onmouseover 和 onmouseout 事件

onmouseover 和 onmouseout 事件在用戶將鼠標移到 SVG 元素上或移開時觸發。下面的示例會在鼠標移到圓形上時改變它的顏色。

<svg>
  <circle id="myCircle" fill="green" cx="50" cy="50" r="40"
    onmouseover="document.getElementById('myCircle').setAttribute('fill', 'blue');"
    onmouseout="document.getElementById('myCircle').setAttribute('fill', 'green');" />
</svg>

五、SVG 在 HTML 中的使用

在 HTML 中,可以通過下面的方式嵌入 SVG 圖像:

<svg width="100" height="100">
  <rect x="10" y="10" width="80" height="80" fill="red" />
</svg>

SVG 也可以通過<img>標籤來嵌入:

<img src="myimage.svg" width="100" height="100" />

如果需要在 HTML 中直接嵌入 SVG 並與 HTML 元素進行交互,可以使用<object>或<iframe>元素:

<object type="image/svg+xml" data="myimage.svg" width="100" height="100"></object>

六、SVG MDN 參考文檔

以上內容僅是 SVG 的基本語法和常用元素,更多內容和詳細參數請參考 SVG MDN 文檔

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/187415.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-27 17:57
下一篇 2024-11-28 06:22

相關推薦

  • SVG與CSS

    一、SVG與CSS的介紹 SVG(可縮放矢量圖形)是用於描述二維矢量圖形的XML標記語言。其可以通過文本編輯器進行編輯,也可以通過JavaScript動態操作SVG元素。與常規圖像…

    編程 2025-04-25
  • 深入理解filter mdn

    一、filter mdn是什麼? filter是JavaScript中一項重要的功能,它允許我們通過一定的篩選條件對數據進行過濾、轉換或聚合。通過filter mdn,我們可以更加…

    編程 2025-04-23
  • SVG製作

    一、製作SVG的特點 SVG(Scalable Vector Graphics) 是一種XML類型的圖形格式,只要使用SVG標記描述圖形即可,因此可以很好地實現從多個角度放縮而且不…

    編程 2025-04-23
  • Python學習指南——從菜鳥到進階

    一、Python介紹 Python是一種高級編程語言,由Guido van Rossum於1989年底發明。Python是一門面向對象的語言,具有簡單易學、代碼簡潔、可讀性高等特點…

    編程 2025-04-02
  • Lua學習指南

    一、Lua的介紹 Lua是一種輕量級的腳本語言,它是由巴西里約熱內盧天主教大學(Pontifical Catholic University of Rio de Janeiro)的…

    編程 2025-02-24
  • 深入了解Elasticsearch:ES學習指南

    在現代互聯網時代,數據處理已成為企業和個人不可或缺的一部分。因此,對數據存儲和檢索技術的需求也越來越大。在這個背景下,Elasticsearch(以下簡稱ES)成為了一種強大而流行…

    編程 2025-02-05
  • 使用SVG圖標優化頁面可提高用戶體驗

    SVG是可縮放矢量圖形,相對於傳統的位圖(如png, jpg等),SVG圖標在放大或縮小時不會失去清晰度,因此常用於在不同分辨率屏幕上顯示相同的圖像。除此之外,使用SVG圖標還可以…

    編程 2025-02-05
  • Hadoop學習指南

    一、Hadoop簡介 Hadoop是Apache基金會開發的一款開源框架,用於存儲和處理大數據集。它使用分布式存儲和計算的方式來管理龐大的數據集。相較於傳統的數據處理方法,Hado…

    編程 2025-02-05
  • MIT6S081深入學習指南

    一、操作系統介紹 操作系統是計算機的核心,它管理着系統資源的調度和分配。MIT6S081深入學習指南提供了操作系統的完整代碼和實時系統維護方法。我們明確了代碼中各個組件的功能和之間…

    編程 2025-01-21
  • 詳解SVG編輯

    一、SVG編輯器 SVG編輯器指的是用於製圖的軟件,一般支持對SVG文件格式的編輯和保存。其中,Adobe Illustrator是廣為人知的SVG編輯器之一,具有豐富的圖形製作工…

    編程 2025-01-20

發表回復

登錄後才能評論