157 votes

Comment écrire une légende sous une image ?

J'ai deux images qui doivent rester en ligne ; je veux écrire une légende sous chaque image.

<center>
   <a href="http://example.com/hello">
       <img src="hello.png" width="100px" height="100px">
   </a>
   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
   <a href="http://example.com/hi">
       <img src="hi.png" width="100px" height="100px">
   </a>
</center>

Comment puis-je le mettre en œuvre ?

8 votes

@ceejayoz sans parler de tous les &nbsp par opposition à la définition d'une marge, par exemple, ou à l'utilisation d'autres outils de mise en page css.

0 votes

Bien que cette question ait été essentiellement traitée, la seule façon que j'ai trouvée pour qu'une légende s'adapte à la largeur d'une image en ligne est de coder en dur la propriété de largeur sur un wrapper ou la légende elle-même.

3 votes

@McGarnagle ne modifie pas le sens du code dans les messages d'autres personnes. La mise en forme est acceptable (sauf si c'est du python), mais le contenu du code est important ! Grâce à votre édition, le message de jxworkmans n'avait aucun sens. Et vraiment, corriger code incorrect sur question est un non-sens total. Quel serait alors l'intérêt des réponses ?

3voto

faino Points 1725

Les CSS sont vos amis ; vous n'avez pas besoin de la balise centrale (qui est d'ailleurs assez dépréciée) ni des espaces insécables excessifs. Voici un exemple simple :

CSS

.images {
    text-align:center;
}
.images img {
    width:100px;
    height:100px;
}
.images div {
    width:100px;
    text-align:center;
}
.images div span {
    display:block;
}
.margin_right {
    margin-right:50px;
}
.float {
    float:left;
}
.clear {
    clear:both;
    height:0;
    width:0;
}

HTML

<div class="images">
    <div class="float margin_right">
        <a href="http://xyz.com/hello"><img src="hello.png" width="100px" height="100px" /></a>
        <span>This is some text</span>
    </div>
    <div class="float">
        <a href="http://xyz.com/hi"><img src="hi.png" width="100px" height="100px" /></a>
        <span>And some more text</span>
    </div>
    <span class="clear"></span>
</div>

2voto

c7borg Points 131

Pour être plus sémantiquement correct et répondre à la question originale de l'OP sur l'alignement côte à côte, j'utiliserais ceci :

HTML

<div class="items">
<figure>
    <img src="hello.png" width="100px" height="100px">
    <figcaption>Caption 1</figcaption>
</figure>
<figure>
    <img src="hi.png" width="100px" height="100px"> 
    <figcaption>Caption 2</figcaption>
</figure></div>

CSS

.items{
text-align:center;
margin:50px auto;}

.items figure{
margin:0px 20px;
display:inline-block;
text-decoration:none;
color:black;}

https://jsfiddle.net/c7borg/jLzc6h72/3/

1voto

Vee5 Points 9

El <figcaption> en HTML5 vous permet d'ajouter du texte à votre image par exemple :

<figcaption>
Your text here
</figcaption>.

Vous pouvez ensuite utiliser le CSS pour positionner le texte là où il doit être sur l'image.

0voto

jerryl Points 1

Légende Sous l'image

<style type="text/css">
.imageHolder {
    position: relative;
    width: 285px;
    height: 175px;
}
.imageHolder .caption {
    position: absolute;
    width: 283px;
    height: 50px;
    bottom: 0px;
    left: 0px;
    color: #ffffff;
    background: green;
    text-align:center;
    font-weight:bold;
    opacity:0.7;
}
</style>

Source complète : Légende sous l'image

-4voto

Jukka K. Korpela Points 71599
<table>
<tr><td><img ...><td><img ...>
<tr><td>caption1<td>caption2
</table>

Coiffez comme vous le souhaitez.

11 votes

Je ne ferais jamais cela. La personne demande des conseils sur la présentation et non sur la manière d'afficher un contenu sous forme de tableau.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X