2012-06-09 150 views
4

我在我的網站上使用了一些交互式/動態SVG,並且作爲一項功能,我們可以選擇按原樣下載.svg文件。SVG和外部樣式表

我們發現的一個問題是,當使用外部樣式表時,如果用戶試圖在Inkscape中打開文件,則樣式會丟失。所以我一直在設計填充和筆觸顏色等,內嵌在元素上。

我想知道SVG標準以及樣式表如何適應它。 .css文件是否設計爲與.svg文件一起傳輸?我知道你可以聲明外部樣式表像這樣:

<?xml-stylesheet type="text/css" href="mystylesheet.css" ?>

將最矢量圖形軟件識別並加載這個,如果他們是在同一文件夾?看起來Illustrator並沒有對SVG的初始支持,但擁有包含JavaScript和CSS3引擎的附加組件。

我不禁感到每個人都錯過了SVG船。有沒有人成功地做過類似的事情,用.css打包下載並在各種矢量圖形程序中試用?像Inkscape這樣的程序在保存SVG時通常會做什麼,因爲顯然有幾種分配樣式的方法?

+0

你的問題到底是什麼? (標題不是問題,你在正文中有四個。) – Phrogz

+0

@Progro全部4我猜...我認爲他們是相關的。這是一個廣泛的問題 - SVG和外部樣式表通常如何/應該如何使用?我正在經歷很多困惑,想知道如何做到這一點,以便得到最廣泛的支持。 –

回答

3

我發現約SVG瀏覽器符合W3C是清除一些這方面了幾個文件:

SVG Viewer Conformance

Styling with CSS

Styling Alternatives

Common Facilities Used by SVG and CSS

我看到了這條線,

符合SVG解釋器和符合SVG查看器支持 通用(即基於文本的)XML內容的CSS樣式需要 也支持CSS樣式的SVG內容。

這使我相信只有支持CSS(而不是表現屬性)的SVG查看器才需要支持外部樣式表 - 所以基本上只是瀏覽器。

我仍然想要一份SVG軟件包的列表,以及每個軟件包是否支持外部樣式表以及它們如何分配樣式,但是也許我必須爲自己做這項研究。

+0

請注意,將外部CSS包含在SVG中應該是微不足道的,所以這應該是最安全的選擇。 – johndodo