L'obiettivo è che l' <svg>
elemento si espanda alla dimensione del suo contenitore genitore, in questo caso a <div>
, non importa quanto grande o piccolo possa essere quel contenitore.
Il codice:
<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 soluzione più comune a questo problema sembra essere l'impostazione viewBox
dell'attributo <svg>
sull'elemento.
viewBox="0 0 widthOfContainer heightOfContainer"
Tuttavia, questo non sembra funzionare nei casi in cui gli elementi all'interno <svg>
dell'elemento hanno larghezze e / o altezze predefinite. Ad esempio, l' <rect>
elemento, nel codice precedente, ha la larghezza e l'altezza impostate in modo esplicito.
Quindi la soluzione ovvia è usare% larghezze e% altezze anche su quegli elementi. Ma anche questo deve essere fatto? Soprattutto, poiché <img src=test.svg >
funziona bene e si espande / si contrae senza problemi con <rect>
altezze e larghezze stabilite esplicitamente .
Se elementi come <rect>
, e altri elementi simili, devono avere le loro larghezze e altezze definite in percentuale, c'è un modo in Inkscape per impostarlo in modo che tutti gli elementi con il <svg>
documento usino larghezze percentuali, altezze, ecc. Invece di dimensioni fisse ?