Le but est que l' <svg>
élément se développe jusqu'à la taille de son conteneur parent, dans ce cas a <div>
, quelle que soit la taille de ce conteneur.
Le code:
<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 solution la plus courante à ce problème semble être la définition de l' viewBox
attribut sur l' <svg>
élément.
viewBox="0 0 widthOfContainer heightOfContainer"
Cependant, cela ne semble pas fonctionner dans les cas où les éléments de l' <svg>
élément ont des largeurs et / ou des hauteurs prédéfinies. Par exemple, l' <rect>
élément, dans le code ci-dessus, a sa largeur et sa hauteur explicitement définies.
La solution évidente est donc d'utiliser également des% de largeurs et des% de hauteurs sur ces éléments. Mais est-ce que cela doit même être fait? Surtout, puisque <img src=test.svg >
fonctionne bien et se dilate / se contracte sans aucun problème avec des <rect>
hauteurs et largeurs explicitement définies .
Si des éléments comme <rect>
, et d'autres éléments similaires, doivent avoir leurs largeurs et hauteurs définies en pourcentages, y a-t-il un moyen dans Inkscape de le définir de sorte que tous les éléments avec le <svg>
document utilisent des largeurs, des hauteurs, etc. en pourcentage au lieu de dimensions fixes ?