天天看點

開始學習SVG!

正在為一個項目而煩惱

主要功能是實作因果分許圖,俗稱魚骨圖、魚刺圖

項目本身是基于JAVA Web的,在實作方式上考慮過:Flash、VML、SVG和使用JS控制圖檔組合

Flex接觸不多,AS3倒是了解一些,以前做過一個

組織機構圖

的小功能。

由于因果圖的分支是不限制的,可能會很多,但Flash不能在運作時動态改變場景大小,是以就放棄了

VML很熟悉,04/05年的時候寫過圖表元件,隻有折線圖和柱圖,但靈活性相當厲害,當時IE還是絕對主流的

缺點很明星,現在用FF、OPERA的人不在少數,不可能隻面向IE了

使用JS控制圖檔組合的方式,是萬不得已的最後選擇,應該可以實作,但相當累,而且各浏覽器的相容性問題更要命

目前,首選SVG,标準化的技術,FF、OP等浏覽器原生支援,IE安裝個ADOBE的插件也還可以,是以将開發路線定在SVG方向

以下貼一些SVG的資料(轉自W3School):

SVG 意為可縮放矢量圖形(Scalable Vector Graphics)

SVG 檔案可通過以下标簽嵌入 HTML 文檔:<embed>、<object> 或者 <iframe>。

HTML 頁面中的 SVG

下面,你會看到三種把 SVG 檔案嵌入 HTML 頁面的不同方法。

使用 <embed> 标簽

<embed> 标簽被所有主流的浏覽器支援,并允許使用腳本。

注釋:當在 HTML 頁面中嵌入 SVG 時使用 <embed> 标簽是 Adobe SVG Viewer 推薦的方法!然而,如果需要建立合法的 XHTML,就不能使用 <embed>。任何 HTML 規範中都沒有 <embed> 标簽。

文法:

<embed src="rect.svg" width="300" height="100" 

type="image/svg+xml"

pluginspage="http://www.adobe.com/svg/viewer/install/" />

注釋:pluginspage 屬性指向下載下傳插件的 URL。

使用 <object> 标簽

<object> 标簽是 HTML 4 的标準标簽,被所有較新的浏覽器支援。它的缺點是不允許使用腳本。

注釋:假如您安裝了最新版本的 Adobe SVG Viewer,那麼當使用 <object> 标簽時 SVG 檔案無法工作(至少不能在 IE 中工作)!

<object data="rect.svg" width="300" height="100" 

codebase="http://www.adobe.com/svg/viewer/install/" />

注釋:codebase 屬性指向下載下傳插件的 URL。

使用 <iframe> 标簽

<iframe> 标簽可工作在大部分的浏覽器中。

<iframe src="rect.svg" width="300" height="100">

</iframe>

我期望....

如果僅僅通過引用 SVG 的命名空間,就能夠把 SVG 元素之間添加到 HTML 代碼中,那就太棒了,這像這樣:

<html xmlns:svg="http://www.w3.org/2000/svg">

<body>

<p>This is an HTML paragraph</p>

<svg:svg width="300" height="100" version="1.1" >

<svg:circle cx="100" cy="50" r="40" stroke="black"

stroke-width="2" fill="red" />

</svg:svg>

</body>

</html>

寵辱不驚,看庭前花開花落;去留無意,望天上雲卷雲舒