Cela semble trivial, mais après toutes les recherches et le codage, je ne peux pas le faire fonctionner. Les conditions sont:
- La taille de la fenêtre du navigateur est inconnue. Ne proposez donc pas de solution impliquant des tailles de pixels absolues.
- Les dimensions d'origine de l'image sont inconnues et peuvent ou non correspondre déjà à la fenêtre du navigateur.
- L'image est centrée verticalement et horizontalement.
- Les proportions de l'image doivent être conservées.
- L'image doit être affichée dans son intégralité dans la fenêtre (pas de recadrage).
- Je ne souhaite pas que les barres de défilement apparaissent (et elles ne devraient pas si l'image correspond.)
- L'image se redimensionne automatiquement lorsque les dimensions de la fenêtre changent, pour occuper tout l'espace disponible sans être plus grande que sa taille d'origine.
En gros, ce que je veux, c'est ceci:
.fit {
max-width: 99%;
max-height: 99%;
}
<img class="fit" src="pic.png">
Le problème avec le code ci-dessus est qu'il ne fonctionne pas: la photo prend tout l'espace vertical dont elle a besoin en ajoutant une barre de défilement verticale.
A ma disposition se trouvent PHP, Javascript, JQuery mais je tuerais pour une solution CSS uniquement. Je m'en fiche si cela ne fonctionne pas dans IE.