2011-01-19 18 views
18

tengo este marcado:Fit <svg> al tamaño del recipiente <object>

#widget1 { 
    height:100px; 
    width:200px; 
} 

<div class="widget" id="widget1"> 
    <object data="foo.svg" type="image/svg+xml" /> 
</div> 

logré hacer el elemento <object> llenar el exterior <div>, pero el archivo foo.svg interior tiene sus propias ideas de lo grande que es. Necesito foo.svg (que consiste en un elemento <svg>, por supuesto) para ser del mismo tamaño que <object> y <div>.

Respuesta

45

Esto se responde (con ejemplos) en el svg primer.

tl; resumen dr:

  • remove 'ancho' y 'altura' atributos en la raíz SVG, y añadir un atributo 'viewBox' con el valor "0 0 wh", donde w y h son los valores absolutos encuentran generalmente en el ancho y la altura atributos (tenga en cuenta que los porcentajes y otras unidades no están permitidos en el atributo viewBox)
+3

¿Qué sucede si no puedo editar el archivo '.svg'? ¿Puedo hacerlo desde el html? –

+2

@ ColonelPanic Se puede hacer con script si el svg y el html son del mismo origen. Aquí le mostramos cómo comenzar con eso: http://stackoverflow.com/questions/14376732/work-with-elements-from-embed-or-object-tag. –

+0

¿Es posible forzar SVG anidado que tenga ancho propio = "300" y alto = "200" para estirar para llenar el DIV padre que es 700x500? – temuri

-1

tratar de añadir: ancho: XXXpx importante; altura: XXXpx! Importante;