O objetivo é fazer com que o <svg>
elemento seja expandido até o tamanho de seu contêiner pai, neste caso a <div>
, não importa o quão grande ou pequeno esse contêiner seja.
O 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>
A solução mais comum para esse problema parece ser definir o viewBox
atributo no <svg>
elemento.
viewBox="0 0 widthOfContainer heightOfContainer"
No entanto, isso não parece funcionar nos casos em que os elementos dentro do <svg>
elemento têm larguras e / ou alturas predefinidas. Por exemplo, o <rect>
elemento, no código acima, tem sua largura e altura definidas explicitamente.
Portanto, a solução óbvia é usar% larguras e% alturas nesses elementos também. Mas isso ainda precisa ser feito? Especialmente porque <img src=test.svg >
funciona bem e expande / contrai sem problemas com <rect>
alturas e larguras explicitamente definidas .
Se elementos como <rect>
, e outros elementos como ele, precisam ter suas larguras e alturas definidas em porcentagens, existe uma maneira no Inkscape de configurá-lo de forma que todos os elementos com o <svg>
documento usem larguras percentuais, alturas, etc. em vez de dimensões fixas ?