Web ページで SVG の実験を始めたところですが、予想とは<object />
異なり、タグを使用してのみ SVG 画像を HTML に追加できることがわかりました。<img />
グラフィックはコンテンツではなくサイトのプレゼンテーションの一部であるため、ほとんどの場合、CSS を使用して Web ページにグラフィックを追加します。
CSSをSVGに適用できることは知っていますが、純粋に CSS を使用して HTML 要素にベクター画像を追加することは可能ですか?
Web ページで SVG の実験を始めたところですが、予想とは<object />
異なり、タグを使用してのみ SVG 画像を HTML に追加できることがわかりました。<img />
グラフィックはコンテンツではなくサイトのプレゼンテーションの一部であるため、ほとんどの場合、CSS を使用して Web ページにグラフィックを追加します。
CSSをSVGに適用できることは知っていますが、純粋に CSS を使用して HTML 要素にベクター画像を追加することは可能ですか?
SVGは<img>
、Opera 9以降のCSS(list-image、background-image、content)でサポートされています。Opera10の方が優れています。Webkit/Safariはsvg<img>
もサポートしています。
ここにいくつかの例があります。dev.opera.comとannevankesteren.nlにさらにいくつかあります。
インラインsvgの例を探している場合は、SamRubyのサイトをご覧ください。
content プロパティを使用して SVG ファイルを参照することはできますが、サポートされていないと思います。サポートされている場合、次のようになります。
.putapicturehere:before {
content: url(mysvgfile.svg);
}
これは確実に IE では機能しません。最新の Firefox では機能する可能性があります。
CSS ブラウザーのサポートに関する質問については、常にquirksmode.org を参照しています。
オフスクリーン img から画像を読み取り、それを object タグに入れるには、ちょっとした CSS ヘルパー JavaScript を作成する必要があるかもしれません。そうすれば、引き続き CSS で制御できます。
私が知る限り、Opera 9 と WebKit (== Safari & Chrome) は PC でそれを行い、FF3.5 でも可能になるという噂があります。
実際、Apple はちょうど半年前に iPhone の Safari に SVG サポートを追加したので、うまくいくかどうかはわかりませんが、試してみる価値はあります。
乾杯、
前回、約 1 年前に試したときは、うまくいきませんでした。ただし、既に svg と xhtml マークアップを混在させることができます。唯一の問題は、ページが正しい MIME タイプ (application-xml など) を持っている必要があるか、ブラウザーが svg を無視することです。
コンテンツとプレゼンテーションを厳密に分離したい場合、インライン svg は完璧なソリューションではありませんが、svg の使用方法として最もサポートされているようです。