前面介紹了許多的圖形元素,如果很多圖形本身是一樣的,需要每次都去定義一個新的麼?我們能否共用一些圖形呢?這是這節的重點-SVG元素的重用。
組合-g元素
g元素是一種容器,它組合一組相關的圖形元素成為一個整體;這樣,我們就可以對這個整體進行操作。這個元素通常可以和desc和title元素一起使用,提供文件的結構資訊。結構良好的文件通常可讀性和渲染效率都不錯。看一個小範例:
程式碼如下:
程式碼如下:
version="1.1"width="5cm"height="5cm">
注意幾點: 1.xmlns="http://www. w3.org/2000/svg"顯示了整個svg元素預設的命名空間是svg。這個在無歧義的時候可以省略。這裡由於svg文檔是一個XML文檔,XML命名空間的相關規則這裡都是適用的。例如可以給svg顯示的指定命名空間,為命名空間提供別名等。
2.g元素是可以巢狀的。
3.組合起來的圖形元素就和單一的元素一樣,可以給id值,這樣,需要的時候(例如動畫和重用一組元素)只用引用這個id值就可以了。
4.組合一組圖形元素可以統一設定這組元素的相關屬性(fill,stroke,transform等),這也是使用組合的一種場景。
模板-symbol元素
symbol元素用來定義圖形模板(模板可以包含很多圖形),這個模板可以被use元素實例化。模板的功能與g元素很相似,都是提供一組圖形對象,但也有一些差異。與g元素不同的地方是:
複製程式碼
程式碼>
version="1.1"width="5cm"height="5cm">
定義-defs元素
SVG允許定義一組對象,然後重複使用這組對象(注意,而不僅僅是圖形對象)。最常見的例子如定義漸層色,然後再在其他的圖形物件中賦給fill屬性。漸層色定義的時候是不會渲染的,所以這類型的物件可以放到任何地方。重用對於圖形物件中也是經常存在的,而且我們也不希望定義的時候直接渲染,而是想在引用的地方渲染,這個可以用defs元素實現。
通常情況下,推薦的做法是:只要有可能,就把被引用的物件放到defs元素中。這些物件通常是:altGlyphDef,clipPath,cursor,filter,marker,mask,pattern,linearGradient,radialGradient,symbol和圖形物件等。把這些物件定義在defs元素中很容易理解,所以就提高了可訪問性。
其實作為容器物件的g元素、symbol元素、defs元素都不同程度上提供了重用的作用,只不過每個元素的特性可能少許不同:比如g元素是直接渲染的,symbol和defs不會直接渲染,symbol含有viewBox屬性,會創造新的視窗。
通常都會給在defs中定義的元素賦予id屬性,並在用到的地方直接使用。根據元素的不同,這些定義可以用到不同地方,例如下面的漸進色作為屬性來使用了:
代碼如下:
程式碼如下:
在這裡請注意xlink名稱空間的使用。儘管大多數檢視器沒有它也將正確顯示這一項,但為了保持一致,xlink名稱空間應該在元素上定義。
引用-use元素
任何svg,symbol,g,單一的圖形元素和use元素本質上都可以作為模板物件被use元素引用(例如初始化)。 use引用的圖形內容會在指定的位置渲染。與image元素不同,use元素不能引用整個文件。
use元素也有x,y,width和height屬性,這些屬性可以省略,如果不省略的話,會將被引用的圖形內容座標或長度對應到目前的使用者座標空間。
use元素的作用過程就相當於把被引用的物件深拷貝一份到獨立的非公開的DOM樹中;這棵樹的父節點是use元素。雖然是非公開的DOM節點,但本質上還是DOM節點,所以被引用物件的所有屬性值、動畫、事件、CSS的相關設定等都會拷貝多來並都還是會起作用,而且這些節點也會繼承use元素和use祖先的相關屬性(注意引用元素是深拷貝,這些拷貝過來的元素與原來的元素已經無關係了,所以這裡不會繼承被引用元素祖先節點的屬性),如果這些節點本身有相關( CSS)屬性,也會覆寫繼承來的屬性,這些與普通的DOM節點是一致的,所以對use元素使用"visibility:hidden"時要小心,並不一定會起作用。但由於這部分節點是非公開的,在DOM操作中,也只能看到use元素,所以也只能操作到use元素。
從視覺效果來看,use元素更像是佔位符,渲染完成後的視覺效果就和直接用被引用對象渲染是一樣的:
1.use元素引用一個symbol元素
這種情況下,視覺效果就相當於:
(1)把use元素換成g元素;
(2)把use的除x,y,width, height,xlink:href外的屬性全部移到g元素;
(3)把use的x,y屬性變成translate(x,y),追加到g元素的transform屬性最後;
(4 )把引用的symbol元素換成svg元素,這個svg元素會明確使用use元素的width和height屬性(use元素沒有這些屬性則是100%);
(5)把引用的symbol元素的圖形內容深拷貝到替換的svg中。
2.use元素引用一個svg元素
這種情況下,視覺效果就相當於:
(1)把use元素換成g元素;
(2 )把use的除x,y,width,height,xlink:href外的屬性全部移到g元素;
(3)把use的x,y屬性變成translate(x,y),追加到g元素的transform屬性最後;
(4)把引用的svg元素包括內容拷貝過來,這個svg元素會明確使用use元素的width和height屬性(use元素沒有這些屬性則使用原來的值);
3.其他情況
這些情況下的視覺效果就相當於:
(1)把use元素換成g元素;
(2)把use的除x ,y,width,height,xlink:href外的屬性全部移到g元素;
(3)把use的x,y屬性變成translate(x,y),追加到g元素的transform屬性最後;
(4)把引用元素拷貝過來;
看下面例子的視覺效果:
下面的圖和上面的圖外觀是一樣的:
xmlns="http://www.w3.org/2000/svg"version="1.1">
實用參考:
腳本索引:http://msdn.microsoft.com/zh-cn/library/ff971910(v=vs.85).aspx
開發中心:https://developer.mozilla.org/en/SVG
熱門參考:http://www.chinasvg.com/
官方文件:http://www.w3.org/TR/SVG11/

Microdatainhtml5enhancesseoanduserexperienceByByBybyBystructuredDatatoSearchEngines.1)useIteMscope,itemType,anditempropattributestomarkupcontentlikeSoreRoductSssSssSoRorevents.2)

html5introducesnewinputtypesthatenhanceSerexperience,簡化開發和iMproveAccessibility.1)自動validatesemailformat.2)優化優化,優化OmportizeSmizesemizesemizesemizesemizesemizeSmobobileWithAnumericKeyPad.3)和Simimplifydateandtimeputientupits,並重新替代了Forcustemolcustemolcustene。

H5是HTML5,是HTML的第五個版本。 HTML5提升了網頁的表現力和交互性,引入了語義化標籤、多媒體支持、離線存儲和Canvas繪圖等新特性,推動了Web技術的發展。

無障礙訪問和網絡標準遵循對網站至關重要。 1)無障礙訪問確保所有用戶都能平等訪問網站,2)網絡標準遵循提高網站的可訪問性和一致性,3)實現無障礙訪問需使用語義化HTML、鍵盤導航、顏色對比度和替代文本,4)遵循這些原則不僅是道德和法律要求,還能擴大用戶群體。

HTML中的H5標籤是第五級標題,用於標記較小的標題或子標題。 1)H5標籤幫助細化內容層次,提升可讀性和SEO。 2)結合CSS可定製樣式,增強視覺效果。 3)合理使用H5標籤,避免濫用,確保內容結構邏輯性。

HTML5構建網站的方法包括:1.使用語義化標籤定義網頁結構,如、、等;2.嵌入多媒體內容,使用和標籤;3.應用表單驗證和本地存儲等高級功能。通過這些步驟,你可以創建一個結構清晰、功能豐富的現代網頁。

通過合理的H5代碼結構可以讓頁面在眾多內容中脫穎而出。 1)使用語義化標籤如、、等組織內容,使結構清晰。 2)通過CSS佈局如Flexbox或Grid控制頁面在不同設備上的呈現效果。 3)實現響應式設計,確保頁面在不同屏幕尺寸上自適應。

HTML5(H5)與舊版本HTML的主要區別包括:1)H5引入了語義化標籤,2)支持多媒體內容,3)提供離線存儲功能。 H5通過新標籤和API增強了網頁的功能和表現力,如和標籤,提高了用戶體驗和SEO效果,但需注意兼容性問題。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Atom編輯器mac版下載
最受歡迎的的開源編輯器

Dreamweaver CS6
視覺化網頁開發工具