Cela semble devoir être facile, mais je n'obtiens simplement rien.
Je souhaite créer une page HTML contenant une seule image SVG qui s'adapte automatiquement à la fenêtre du navigateur, sans aucun défilement et tout en préservant son rapport hauteur / largeur.
Par exemple, pour le moment, j'ai une image SVG 1024x768; si la fenêtre du navigateur est de 1980x1000, je veux que l'image s'affiche à 1333x1000 (remplir verticalement, centrée horizontalement). Si le navigateur était de 800x1000, je veux qu'il s'affiche à 800x600 (remplir horizontalement, centré verticalement).
Actuellement, je l'ai défini comme ceci:
<body style="height: 100%">
<div id="content" style="width: 100%; height: 100%">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"
width="100%" height="100%"
viewBox="0 0 1024 768"
preserveAspectRatio="xMidYMid meet">
...
</svg>
</div>
</body>
Cependant, cela s'étend à toute la largeur du navigateur (pour une fenêtre large mais courte) et produit un défilement vertical, ce qui n'est pas ce que je veux.
Qu'est-ce que je rate?
Réponses:
Que diriez-vous:
Ou:
J'ai un exemple sur mon site utilisant (à peu près) cette technique, mais avec un rembourrage de 5% tout autour, et en utilisant à la
position:absolute
place deposition:fixed
:http://phrogz.net/svg/svg_in_xhtml5.xhtml
(L'utilisation
position:fixed
empêche un scénario très marginal de lien vers une ancre de sous-page sur la page, etoverflow:hidden
peut garantir qu'aucune barre de défilement n'apparaîtra (au cas où vous auriez du contenu supplémentaire).la source
viewBox
attribut.