0Pricing
HTML Academy · Leçon

`viewBox` SVG et mise à l’échelle adaptative

Faites évoluer correctement les SVG sur toutes les tailles d’écran.

`viewBox` SVG et mise à l’échelle adaptative est une leçon HTML Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage HTML Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours HTML Academy comprend 4 leçons au total.

Largeur et hauteur par rapport à viewBox

Les attributs de largeur et de hauteur de SVG définissent sa taille affichée dans le DOM. L’attribut viewBox définit l’espace de coordonnées interne. Ces deux notions sont indépendantes : un viewBox de "0 0 100 100" avec une largeur de "200" et une hauteur de "200" agrandit l’espace de coordonnées d’un facteur 2.

Syntaxe de viewBox

viewBox="min-x min-y width height". Le cas le plus courant est viewBox="0 0 100 100", qui définit un espace de coordonnées de 100×100 commençant à l’origine. Les valeurs de coordonnées dans SVG font référence à cet espace, et non aux pixels.

SVG adaptatif

Pour obtenir un SVG adaptatif, omettez les attributs de largeur et de hauteur (ou définissez-les à 100 %) et laissez viewBox définir les proportions. Ajoutez le CSS suivant : svg { width: 100%; height: auto; }. Le SVG s’adapte à son conteneur tout en conservant son rapport d’aspect.

preserveAspectRatio

preserveAspectRatio contrôle la manière dont viewBox s’ajuste à la fenêtre d’affichage SVG lorsque les rapports d’aspect diffèrent. Valeurs possibles : "xMidYMid meet" (par défaut, avec des bandes), "xMidYMid slice" (recadrage pour remplir) et "none" (étirement pour remplir sans conserver le rapport d’aspect).

min-x et min-y pour le panoramique

Modifier min-x et min-y déplace la portion visible de l’espace de coordonnées SVG. viewBox="50 50 100 100" affiche la région allant de (50,50) à (150,150). Cela permet de réaliser un panoramique interactif en mettant à jour les valeurs de viewBox avec JavaScript.

Zoom avec viewBox

Réduisez les dimensions de viewBox pour effectuer un zoom avant : viewBox="25 25 50 50" affiche une région plus petite, agrandie pour remplir l’élément SVG. Augmentez les dimensions pour effectuer un zoom arrière. Mettez à jour viewBox lors des événements de molette pour créer un zoom interactif sans modifier l’échelle de l’élément SVG.

SVG dans une image ou intégré

Un SVG utilisé comme image s’adapte avec object-fit, mais ne peut pas être mis en forme avec CSS ni piloté par un script. Un SVG intégré directement est entièrement accessible à CSS et à JavaScript, mais augmente la taille du HTML. Faites votre choix selon les besoins d’interactivité.

Modèle d’icône SVG

Les icônes SVG utilisent un viewBox fixe (par exemple, "0 0 24 24") et aucun attribut de largeur ou de hauteur, ce qui permet à CSS de définir leur taille : .icon { width: 1.5rem; height: 1.5rem; }. viewBox garantit que les icônes s’adaptent correctement à toutes les tailles tout en conservant un rendu vectoriel net.

Symbole pour les planches d’icônes

Définissez les icônes dans des éléments <symbol viewBox="0 0 24 24"> à l’intérieur d’un SVG masqué. Référencez-les avec <use href="#icon-name">. Chaque élément use peut avoir sa propre largeur, sa propre hauteur, son propre remplissage et sa propre couleur : un seul fichier de planche pour toutes les icônes.

currentColor pour les thèmes

Le remplissage SVG défini sur currentColor hérite de la propriété CSS de couleur de l’élément ou de son parent. Définissez color: red sur le SVG ou sur un parent, et l’icône sera automatiquement remplie en rouge. Les icônes monochromes peuvent ainsi suivre la couleur du texte sans mise en forme propre à SVG.

Débogage de viewBox

Si le contenu SVG semble rogné ou positionné de manière inattendue, consignez ou inspectez la valeur de viewBox. Une erreur courante consiste à définir viewBox sur les dimensions en pixels de l’illustration source sans tenir compte de sa taille affichée, ce qui provoque des problèmes de mise à l’échelle. Vérifiez que viewBox correspond aux limites réelles du contenu de l’illustration SVG.

Vérification des connaissances

Comment faire pour qu’un SVG s’adapte de manière réactive à la largeur de n’importe quel conteneur ?

Résumé

Le viewBox de SVG définit un espace de coordonnées interne indépendant de la taille affichée en pixels, ce qui permet une mise à l’échelle adaptative. Définir une largeur à 100 % et une hauteur automatique avec un viewBox permet aux SVG de s’adapter à n’importe quel conteneur. Le modèle de planche symbol+use, les thèmes avec currentColor et preserveAspectRatio forment une boîte à outils complète pour utiliser des SVG flexibles et adaptables aux thèmes.

Questions Fréquemment Posées

La leçon « `viewBox` SVG et mise à l’échelle adaptative » est-elle gratuite ?

Oui — le texte complet de « `viewBox` SVG et mise à l’échelle adaptative » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours HTML Academy, passe à CoddyKit PRO. Le cours HTML Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « `viewBox` SVG et mise à l’échelle adaptative » ?

Faites évoluer correctement les SVG sur toutes les tailles d’écran. Tu pratiques HTML Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer HTML Academy ?

Aucune expérience préalable n'est requise. HTML Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « `viewBox` SVG et mise à l’échelle adaptative » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon HTML Academy ?

Oui. Chaque leçon HTML Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. SVG intégré ou `img` et `object`
  2. Formes SVG de base : `rect`, `circle`, `path`
  3. `viewBox` SVG et mise à l’échelle adaptative
  4. Animer un SVG avec CSS et SMIL
← Retour à HTML Academy