2010-04-12 5 views

Répondre

5

Non, ça ne peut pas. Cependant, vous pouvez truquer à l'aide d'images d'arrière-plan CSS.

Pour éviter d'afficher le glyphe d'image tronquée, vous pouvez ne pas utiliser du tout de balise <img> et utiliser à la place deux éléments imbriqués avec différentes images d'arrière-plan. (Notez que cela nuirait à l'accessibilité)

+1

Cela signifierait également la transparence qui précède, comme svg et .png ne serait pas parfait pixels matchs, surtout si la page a été agrandie. –

+0

Je n'avais pas pensé à ça. – SLaks

0

La réponse est simple ... Non

1

comprennent Juste le svg comme <object> et mis <img> à l'intérieur de celui-ci.

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

Cela devrait fonctionner. L'image png ne sera affichée que s'il est impossible d'afficher svg.

+0

Malheureusement, l'objet et img ne se comportent pas de la même manière. img ramasse la taille du svg mieux que l'objet et se comporte également mieux quand zoomé. L'objet peut exécuter des scripts et img ne peut pas. Aussi img est sémantiquement ce que je veux dire et l'objet se sent comme un hack. –

1

Bien que ce soit probablement pas ce que vous vouliez, il convient de mentionner que vous pouvez spécifier different resolutions for retina displays:

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

Au moment de la question, il n'a pas été possible. Mais maintenant, il est correct de faire comme ceci:

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

Voir docs on MDN