Voici une illustration du problème (testé dans Firefox et Chrome):
<div style="background-color: red;"><svg height="100px" width="100" style="background-color: blue;"></svg></div>
Remarquez l'espace supplémentaire red
à l'intérieur du div
en dessous du bleu svg
.
Vous avez déjà essayé de définir padding
et margin
des deux éléments sur 0
, mais sans chance.
Vous avez besoin display: block;
sur votre svg
.
<svg style="display: block;"></svg>
En effet, les éléments de bloc en ligne (comme <svg>
et <img>
) s'asseoir sur la ligne de base du texte. L'espace supplémentaire que vous voyez est l'espace restant pour accueillir les descendants des personnages (la queue sur "y", "g", etc.).
Vous pouvez aussi utiliser vertical-align:top
si vous devez le conserver inline
ou inline-block
svg
est un élément inline
. inline
les éléments laissent un espace blanc.
Solution:
Ajouter display:block
à svg
, ou définissez la hauteur du div parent comme svg
.
Une autre alternative est d'ajouter font-size: 0
à svg parent
.
Modifiez la propriété display
du svg pour qu'elle soit block
.
Essayez d'ajouter height:100px
à div
et en utilisant un height="100%"
sur svg
:
<div style="background-color:red;height:100px">
<svg height="100%" width="100" style="background-color:blue;"></svg>
</div>
ajoutez simplement la hauteur à l'élément div principal
<div style="background-color: red;height:100px"><svg height="100px" width="100" style="background-color: blue;"></svg></div>
Changez votre style en
style = "background-color: red; line-height: 0;"