2010-04-12 11 views

Antwort

5

Nein, kann es nicht.

Allerdings können Sie es mit CSS-Hintergrundbildern vortäuschen.

Um zu vermeiden, dass das gebrochene Bildsymbol angezeigt wird, möchten Sie möglicherweise kein -Tag verwenden und stattdessen zwei verschachtelte Elemente mit unterschiedlichen Hintergrundbildern verwenden. (Beachten Sie, dass die Zugänglichkeit schaden würde)

+1

Dies würde auch bedeuten Transparenz verzichten, als SVG und PNG nicht Pixel perfekte Paarungen sein, vor allem, wenn die Seite in wurde gezoomt. –

+0

Daran hatte ich nicht gedacht. – SLaks

0

Einfache Antwort ... Nr

1

schließen Sie einfach das svg als <object> und setzen <img> im Inneren.

<object data='image.svg'> 
    <img src='image.png'> 
</object> 

Das sollte funktionieren. Das PNG-Bild wird nur angezeigt, wenn es nicht möglich ist, Svg anzuzeigen.

+0

Leider verhalten sich Objekt und img nicht gleich. Img nimmt Größe von der Svg besser als Objekt und verhält sich auch besser, wenn gezoomt. Objekt kann Skripte ausführen und img nicht. Auch img ist semantisch was ich meine und Objekt fühlt sich an wie ein Hack. –

1

Obwohl dies ist wahrscheinlich nicht das, was man wollte, dann ist es erwähnenswert, dass Sie different resolutions for retina displays angeben:

<img src="image-src.png" srcset="image-1x.png 1x, image-2x.png 2x, 
           image-3x.png 3x, image-4x.png 4x"> 
2

Zum Zeitpunkt der Frage es nicht möglich war. Aber jetzt ist es in Ordnung, wie dies zu tun:

​<picture> 
    <source srcset="mdn-logo.svg" type="image/svg+xml"> 
    <img src="mdn-logo.png" alt="MDN"> 
</picture> 

Siehe docs on MDN

Verwandte Themen