Ceci est une traduction. Elle peut avoir des erreurs ou être dépassée par rapport à la version anglaise. Traducteur(-trice): Laurent Carcone
Voir également l'index de tous les trucs et astuces
Dans cette page:
Il y a un problème dans notre exemple précédent car dans certains cas la largeur de l'image peut être supérieure à celle de la figure. Dans notre exemple, l'image fait toujours 136px de large et la figure à une largeur égale à 30% du texte englobant. Si vous réduisez la fenêtre, il se peut que l'image déborde de la figure (essayez !).
Si vous connaissez la taille de toutes les images du document, vous pouvez ajouter une largeur minimum à la figure, comme ceci:
figure { min-width: 150px; }
Un autre façon de résoudre ce problème est de redimensionner l'image elle-même. C'est ce que nous faisons sur l'exemple de droite. Si vous appliquez un grand agrandissement à la fenêtre, les images au format JPEG ne se redimensionnent pas très bien. Par contre, si l'image est un diagramme ou un graphique au format SVG, le redimensionnement fonctionne très bien. Voici les balises que nous avons utilisées:
<figure> <p><img class=scaled src="st-tropez.jpg" alt="St. Tropez"> <figcaption>Saint Tropez et son fort au soleil couchant</figcaption> </figure>
Ainsi que la feuille de style:
figure { float: right; width: 30%; text-align: center; font-style: italic; font-size: smaller; text-indent: 0; border: thin silver solid; margin: 0.5em; padding: 0.5em; } img.scaled { width: 100%; }
Le seule modification par rapport à l'exemple précedent réside dans la dernière règle, grace à elle, l'image est aussi large que l'intérieur de la figure (la zone à l'intérieur de la bordure et de la marge interne).
Modèle réduit de la Tour Eiffel au Parc France Miniature
HTML4, contrairement à HTML5, ne définit pas d'élément qui insère une figure avec une légende. Cela avait été proposé en HTML3 (cf HTML3), mais n'avait pas été introduit en HTML4. Voici une façon de simuler cet élément:
<div class=figure> <p><img src="eiffel.jpg" width="136" height="200" alt="Eiffel tower"> <p>Modèle réduit de la Tour Eiffel au Parc France Miniature </div>
Dans la feuille de style, vous pouvez utiliser la classe "figure" pour formatter la figure de la façon que vous voulez. Par exemple, les règles suivantes vous permettent de positionner la figure sur la droite, dans une zone égale à 30% de la largeur des paragraphes englobants:
div.figure { float: right; width: 30%; text-align: center; font-style: italic; font-size: smaller; text-indent: 0; border: thin silver solid; margin: 0.5em; padding: 0.5em; }
Comme précédemment, seules les deux premières déclarations sont nécessaires (float et width), le reste est pour faire joli !
Pour éviter que les images débordent de la figure et si vous connaissez la largeur de toutes les images du document, vous pouvez ajouter une largeur minimum à l'élémént DIV englobant, comme ceci:
div.figure { min-width: 150px; }
Saint Tropez et son fort au soleil couchant
Pour redimensionner une image à la largeur de la figure elle-même, comme sur l'example de droite, vous pouvez ajouter un attribut 'class' et une règle CSS de manière similaire à ce que nous avons fait pour l'exemple en HTML5 précédent:
<div class=figure> <p><img class=scaled src="st-tropez.jpg" alt="St. Tropez"> <p>Saint Tropez et son fort au soleil couchant </div>
la feuille de style associée:
div.figure { float: right; width: 30%; border: thin silver solid; margin: 0.5em; padding: 0.5em; text-align: center; font-style: italic; font-size: smaller; text-indent: 0; } img.scaled { width: 100%; }
Nous avons uniquement ajouté la dernière règle; elle rend l'image aussi large que l'intérieur de l'élément DIV englobant (la surface à l'intérieur de la bordure et de la marge interne).
Created 17 January 2001;
Last updated mer. 06 janv. 2021 05:40:49 UTC