Bonjour,
J'ai un tableau dont les cellules contiennent des boutons. Ces boutons contiennent une image SVG.
J'aimerais que ce tableau et les images qui sont dans les cellules soient dimensionnés automatiquement.
Ce que je veux dire par là, c'est :
1 - Le tableau prend au mieux toute la place disponible du parent
2 - L'image qui est dans une cellule prend au mieux toute la place disponible de la cellule
3 - L'image conserve son rapport largeur/hauteur comme indiqué dans l'attribut viewBox du fichier SVG (qui est censé être fait pour ça non ?), et est centrée dans la cellule au cas où la proportion ne joue pas avec la taille de la cellule; elle ne doit surtout pas être coupée et il doit y avoir un minimum d'espace vide
4 - Toutes les images et donc les cellules ont la même taille à l'instant T, mais elles ne sont pas forcément carrées
5 - Ca doit fonctionner quelque soit le rapport largeur/hauteur des images
Le code HTML est généré dynamiquement par javascript mais ça donne ça :
Le code CSS actuel est :
J'ai fait les constatations suivantes :
* Si je n'indique pas de taille pour les images comme dans le code HTML exposé ci-dessus, elles semblent prendre une taille aléatoire qui n'est pas la bonne, ou alors ça fait des trucs bizarres de 1px de haut
* Si j'indique width=100% ou height=100%, c'est pareil
* Si j'indique width=100% et height=auto ou l'inverse, c'est encore pareil
* width=auto et height=auto c'est encore une fois la même chose
* Les tailles du genre width=1em ne semblent pas fonctionner non plus, c'est comme si elles étaient ignorées
* Par contre si j'indique explicitement une taille en dur, p.ex. width=30 et height=30, les images prennent bien la taille spécifiée mais évidemment ce n'est pas celle qu'il faudrait
Comportements vérifiés avec chrome et firefox; pour le moment j'ai écarté IE et Safari.
J'aimerais bien ne pas avoir à spécifier explicitement une taille. L'entier du truc devrait être fluide et s'adapter à la zone d'affichage disponible. Comment faire ?
Je pourrais convertir les images SVG en PNG ou autre chose, mais j'ai choisi SVG justement parce que c'est censé pouvoir se redimensionner librement sans perte de qualité. De plus je n'ai aucune idée de la taille qu'il faudrait.
Je ne peux malheureusement pas fournir facilement un exemple en ligne, la page en question nécéssite un compte membre avec mot de passe, et en réalité, le code HTML est dynamiquement généré par javascript et les images sont mis à jour selon l'état du jeu.
J'espère que j'ai suffisament décrit ce que je souhaite...
Merci.
J'ai un tableau dont les cellules contiennent des boutons. Ces boutons contiennent une image SVG.
J'aimerais que ce tableau et les images qui sont dans les cellules soient dimensionnés automatiquement.
Ce que je veux dire par là, c'est :
1 - Le tableau prend au mieux toute la place disponible du parent
2 - L'image qui est dans une cellule prend au mieux toute la place disponible de la cellule
3 - L'image conserve son rapport largeur/hauteur comme indiqué dans l'attribut viewBox du fichier SVG (qui est censé être fait pour ça non ?), et est centrée dans la cellule au cas où la proportion ne joue pas avec la taille de la cellule; elle ne doit surtout pas être coupée et il doit y avoir un minimum d'espace vide
4 - Toutes les images et donc les cellules ont la même taille à l'instant T, mais elles ne sont pas forcément carrées
5 - Ca doit fonctionner quelque soit le rapport largeur/hauteur des images
Le code HTML est généré dynamiquement par javascript mais ça donne ça :
<div id="game">
<table>
<tr>
<td>
<a href="#"><img alt="machin" src="machin.svg" /></a>
</td><td>
<a href="#"><img alt="truc" src="truc.svg" /></a>
</td><td>
...
</td></tr>
<tr>
...
</tr>
</table>
</div>
Le code CSS actuel est :
#game {
float: left;
width: 32%;
max-width: 32%;
height: 91%;
max-height: 91%;
overflow: auto;
overflow-y: auto;
overflow-x: hidden;
margin: 0;
}
J'ai fait les constatations suivantes :
* Si je n'indique pas de taille pour les images comme dans le code HTML exposé ci-dessus, elles semblent prendre une taille aléatoire qui n'est pas la bonne, ou alors ça fait des trucs bizarres de 1px de haut
* Si j'indique width=100% ou height=100%, c'est pareil
* Si j'indique width=100% et height=auto ou l'inverse, c'est encore pareil
* width=auto et height=auto c'est encore une fois la même chose
* Les tailles du genre width=1em ne semblent pas fonctionner non plus, c'est comme si elles étaient ignorées
* Par contre si j'indique explicitement une taille en dur, p.ex. width=30 et height=30, les images prennent bien la taille spécifiée mais évidemment ce n'est pas celle qu'il faudrait
Comportements vérifiés avec chrome et firefox; pour le moment j'ai écarté IE et Safari.
J'aimerais bien ne pas avoir à spécifier explicitement une taille. L'entier du truc devrait être fluide et s'adapter à la zone d'affichage disponible. Comment faire ?
Je pourrais convertir les images SVG en PNG ou autre chose, mais j'ai choisi SVG justement parce que c'est censé pouvoir se redimensionner librement sans perte de qualité. De plus je n'ai aucune idée de la taille qu'il faudrait.
Je ne peux malheureusement pas fournir facilement un exemple en ligne, la page en question nécéssite un compte membre avec mot de passe, et en réalité, le code HTML est dynamiquement généré par javascript et les images sont mis à jour selon l'état du jeu.
J'espère que j'ai suffisament décrit ce que je souhaite...
Merci.