El objetivo es que el <svg>
elemento se expanda al tamaño de su contenedor principal, en este caso a <div>
, sin importar cuán grande o pequeño sea ese contenedor.
El código:
<style>
svg, #container{
height: 100%;
width: 100%;
}
</style>
<div id="container">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" >
<rect x="0" y="0" width="100" height="100" />
</svg>
</div>
La solución más común a este problema parece establecer el viewBox
atributo en el <svg>
elemento.
viewBox="0 0 widthOfContainer heightOfContainer"
Sin embargo, esto no parece funcionar en los casos en que los elementos dentro del <svg>
elemento tienen anchos y / o alturas predefinidos. Por ejemplo, el <rect>
elemento, en el código anterior, tiene su ancho y alto establecidos explícitamente.
Entonces, la solución obvia es usar% anchuras y% alturas en esos elementos también. Pero, ¿es necesario hacer esto? Especialmente, dado que <img src=test.svg >
funciona bien y se expande / contrae sin ningún problema con las <rect>
alturas y anchos establecidos explícitamente .
Si los elementos como <rect>
, y otros elementos similares, tienen que tener sus anchos y alturas definidos en porcentajes, ¿hay alguna forma en Inkscape de configurarlo para que todos los elementos del <svg>
documento usen anchos, alturas, etc. porcentuales en lugar de dimensiones fijas? ?