搜尋
首頁web前端H5教程HTML5之SVG 2D入門1—SVG(可縮放向量圖形)概述_html5教學技巧

點陣圖與向量圖
以前,瀏覽器中顯示的圖形,例如jpeg、gif等,都是點陣圖,這些圖像格式是基於光柵的。在光柵影像中,影像檔案定義了影像中每個像素的色彩值。瀏覽器需要讀取這些值並做出相應行動。這種影像的再現能力比較強,但是在某些情形下會顯得不足。例如,當瀏覽器以不同大小顯示一副影像時,通常會產生鋸齒邊緣,這時,瀏覽器必須為那些在原始影像中不存在的像素插入或猜測數值;這會導致影像失真。此外,針對點陣圖進行動畫,最多也僅限於產生「翻動書本」類型的動畫,即快速連續地顯示單獨影像。

向量圖透過指定為確定每個像素的值所需的指令而不是指定這些值本身,克服了這些困難中的一部分。例如,向量圖形不再為一個直徑一英寸的圓提供像素值,而是告訴瀏覽器創建一個直徑一英寸的圓,然後讓瀏覽器(或插件)做其餘事情。這消除了光柵圖形的許多限制;使用向量圖形,瀏覽器只要知道它必須畫一個圓。如果影像需要以正常大小的三倍來顯示,那麼瀏覽器只要以正確的大小畫圓而不必執行光柵影像通常的插入法。類似地,瀏覽器接收的指令可以更容易地與外部資訊來源(如應用程式和資料庫)綁定,要對圖像製作動畫,瀏覽器只要接收有關如何操縱屬性(如半徑或顏色)的指令即可。
HTML體系中,最常用的繪製向量圖的技術是SVG和HTML5新增加的canvas元素。這兩種技術都支援繪製向量圖和光柵圖。

SVG概述
可縮放向量圖形(Scalable Vector Graphics,簡稱SVG)是一種使用XML來描述二維圖形的語言(SVG嚴格遵從XML語法)。 SVG允許三種類型的圖形物件:向量圖形形狀(例如由直線和曲線組成的路徑)、圖像和文字。 可以將圖形物件(包括文字)分組、樣式化、轉換和組合到先前呈現的物件中。 SVG 功能集包含巢狀轉換、剪下路徑、alpha 遮罩和範本物件。

SVG繪圖是互動式和動態的。 例如,可使用腳本來定義和觸發動畫。這一點與Flash相比很強大。 Flash是二進位文件,動態建立和修改都比較困難。而SVG是文字文件,動態操作是相當容易的。而且,SVG直接提供了完成動畫的相關元素,操作起來非常方便。

SVG與其他Web標準相容,並直接支援文件物件模型DOM。這點也是與HTML5中的canvas相比很強大的地方(這裡注意,SVG內部也是用一個類似的canvas這樣的東西來展示SVG圖形,到後面你會發現很多特性和HTML5的canvas還有點像;文中如果沒明確說明是SVG的canvas的話,都代指HTML5中的canvas元素)。因而,可以很方便的使用腳本實現SVG的許多進階應用。而且SVG的圖形元素基本上都支援DOM中的標準事件。大量事件處理程序(如“onmouseover”和“onclick”)可指派給任何SVG圖形物件。 雖然SVG的渲染速度比不上canvas元素,但勝在DOM操作很靈活,這個優點完全可以彌補速度上的劣勢。

SVG既可以說是一種協議,也可以說是一門語言;既是HTML的一個標準元素,也是一種圖片格式。
SVG並不是HTML5中的東西,但是也算頁面時興的技術之一,姑且也放到這個專題下了。

SVG與其它圖片格式的比較
SVG與其它的圖片格式相比,有很多優點(很多優點來自向量圖的優點):
• SVG文件是純粹的XML, 可被非常多的工具讀取和修改(例如記事本)。
• SVG 與JPEG 和GIF影像比起來,尺寸更小,且可壓縮性更強。
• SVG 是可伸縮的,可在影像品質不下降的情況下放大,可在任何的解析度下被高品質列印。
• SVG 圖像中的文字是可選的,同時也是可搜尋的(很適合製作地圖)。
• SVG 可以與 Java 技術一起運作。
• SVG 是開放的標準。

SVG與Flash的比較
SVG 的主要競爭者是Flash。與Flash相比,SVG 最大的優勢是它與其他標準(例如XSL和DOM)相容,操作方便,而Flash則是未開源的私有技術。其它的例如儲存的格式,動態生成圖形等方面,SVG也佔有很大的優勢。

SVG的呈現方式
關於支援HTML5與SVG的瀏覽器不是這裡討論的重點,基本上裝上最新的Chrome或者FireFox瀏覽器就差不多了(IE用戶請裝IE9就對了,至於IE9之前的版本,需要裝SVG的插件,這裡就直接略過了)。對於直接支援SVG的瀏覽器,SVG主要採用兩面兩種呈現的方式。

內聯到HTML
SVG是標準的HTML元素,直接寫到HTML中就可以了,看下面的例子:

複製代碼
代碼如下:






My First SVG Page


width="200px" height=" 200px">
fill="none" stroke="black"/>
style="stroke: black; fill: red;"/>




請注意開頭的部分xml聲明,與svg的命名空間xmlns、版本version等部分,主要是考慮相容性的問題;這些部分在HTML5中基本上都可以不用寫了(寫不寫還是自己瞧著辦吧)。

獨立SVG檔案
獨立SVG指的是透過使用svg檔案副檔名來提供向量圖形檔案格式。在瀏覽器中嵌入這個svg檔案就可以使用了。
1.獨立的SVG檔案/頁面,定義的範本基本上就像下面的一樣:

複製程式碼
複製程式碼


代碼如下:






把這樣的文字檔案保存成以svg為副檔名的文件,例如sun.svg,這樣的文件可以直接用瀏覽器開啟瀏覽,也可以作為引用嵌入到別的頁面中。
2.HTML引用外部的SVG檔。
使用object或者img元素嵌入svg圖形就可以了,例如下面的小例子:
複製代碼


代碼如下:





My First SVG Page


width="300px" height="300px">

Your browser does not support SVG - please upgrade to a modern browser.


svg not supported!


其實SVG也可以放在其他的XML文件中,也可以像其他的XML文件一樣,使用XML相關的技術格式化和驗證,這個不是重點,這裡略去了。


SVG的渲染順序
SVG是嚴格按照定義元素的順序來渲染的,這個與HTML靠z-index值來控制分層不一樣。在SVG中,寫在前面的元素先被渲染,寫在後面的元素後被渲染。後渲染的元素會覆蓋前面的元素,雖然有時受透明度影響,看起來不是被覆蓋的,但是SVG確實是嚴格按照先後順序來渲染的。 注意:SVG是以XML定義的,所以是大小寫敏感的,這點與HTML不一樣。
實用參考
官方文件:http://www.w3.org/TR/SVG11/
腳本索引: http://msdn.microsoft.com/zh-cn/library/ff971910(v=vs.85).aspx
開發中心:https://developer.mozilla.org/en/ SVG熱門參考:http://www.chinasvg.com/
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
H5:工具,框架和最佳實踐H5:工具,框架和最佳實踐Apr 11, 2025 am 12:11 AM

H5開發需要掌握的工具和框架包括Vue.js、React和Webpack。 1.Vue.js適用於構建用戶界面,支持組件化開發。 2.React通過虛擬DOM優化頁面渲染,適合複雜應用。 3.Webpack用於模塊打包,優化資源加載。

HTML5的遺產:當前了解H5HTML5的遺產:當前了解H5Apr 10, 2025 am 09:28 AM

HTML5hassignificantlytransformedwebdevelopmentbyintroducingsemanticelements,enhancingmultimediasupport,andimprovingperformance.1)ItmadewebsitesmoreaccessibleandSEO-friendlywithsemanticelementslike,,and.2)HTML5introducednativeandtags,eliminatingthenee

H5代碼:可訪問性和語義HTMLH5代碼:可訪問性和語義HTMLApr 09, 2025 am 12:05 AM

H5通過語義化元素和ARIA屬性提升網頁的可訪問性和SEO效果。 1.使用、、等元素組織內容結構,提高SEO。 2.ARIA屬性如aria-label增強可訪問性,輔助技術用戶可順利使用網頁。

H5與HTML5相同嗎?H5與HTML5相同嗎?Apr 08, 2025 am 12:16 AM

"h5"和"HTML5"在大多數情況下是相同的,但它們在某些特定場景下可能有不同的含義。 1."HTML5"是W3C定義的標準,包含新標籤和API。 2."h5"通常是HTML5的簡稱,但在移動開發中可能指基於HTML5的框架。理解這些區別有助於在項目中準確使用這些術語。

H5的功能是什麼?H5的功能是什麼?Apr 07, 2025 am 12:10 AM

H5,即HTML5,是HTML的第五個版本,它為開發者提供了更強大的工具集,使得創建複雜的網頁應用變得更加簡單。 H5的核心功能包括:1)元素允許在網頁上繪製圖形和動畫;2)語義化標籤如、等,使網頁結構清晰,利於SEO優化;3)新API如GeolocationAPI,支持基於位置的服務;4)跨瀏覽器兼容性需要通過兼容性測試和Polyfill庫來確保。

h5鏈接怎麼做h5鏈接怎麼做Apr 06, 2025 pm 12:39 PM

如何創建 H5 鏈接?確定鏈接目標:獲取 H5 頁面或應用程序的 URL。創建 HTML 錨點:使用 <a> 標記創建錨點並指定鏈接目標URL。設置鏈接屬性(可選):根據需要設置 target、title 和 onclick 屬性。添加到網頁:將 HTML 錨點代碼添加到希望鏈接出現的網頁中。

h5兼容問題怎麼解決h5兼容問題怎麼解決Apr 06, 2025 pm 12:36 PM

解決 H5 兼容問題的方法包括:使用響應式設計,允許網頁根據屏幕尺寸調整佈局。採用跨瀏覽器測試工具,在發布前測試兼容性。使用 Polyfill,為舊瀏覽器提供對新 API 的支持。遵循 Web 標準,使用有效的代碼和最佳實踐。使用 CSS 預處理器,簡化 CSS 代碼並提高可讀性。優化圖像,減小網頁大小並加快加載速度。啟用 HTTPS,確保網站的安全性。

h5怎么生成鏈接h5怎么生成鏈接Apr 06, 2025 pm 12:33 PM

h5頁面可以通過兩種方法生成鏈接:手動創建鏈接或使用短鏈接服務。通過手動創建,只需複制h5頁面的URL即可;通過短鏈接服務,需將URL粘貼到服務中,然後獲取縮短的URL。

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

熱工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

DVWA

DVWA

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

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。