画像の下にキャプションを書く方法は?


126

インラインで保持する必要がある2つの画像があります。各画像の下にキャプションを書きたいです。

<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>

どのように実装できますか?


8
@ceejayozは&nbsp、マージンの設定や他のcssレイアウトツールの使用とは対照的に、すべてについて言及していません。
jzworkman 2012

これは本質的には答えられていますが、キャプションを取得してインライン画像の幅に合わせる唯一の方法は、ラッパーまたはキャプション自体の幅プロパティをハードコーディングすることです。
MyNameIsKo 2014

2
@McGarnagleは、他の人の投稿のコードの意味を編集しません。フォーマットは問題ありませんが(Pythonでない限り)、すべてのコードの内容は重要です!編集のおかげで、jxworkmansの投稿は無意味に見えました。そして実際に、固定間違ったコードを質問することは完全にナンセンスです。では、答えのポイントは何でしょうか?
トマーシュZato -復活モニカ

回答:


275

図表タグ:

<figure>
    <img src='image.jpg' alt='missing' />
    <figcaption>Caption goes here</figcaption>
</figure>

お奨めはHTML5です。


サンプルを見る


1
ただし、ほとんどのIEにはHTML5シムが必要です。
ceejayoz

10
これらのタグはまったく役に立ちません。これらは単なるダミーマークアップであり、CSSで(および/または他のHTMLタグを使用して)すべての作業を行う必要があります。また、古いバージョンのIEをダミータグとしても認識させるには、追加の操作が必要です。したがって、divor を使用する方が簡単spanです。
Jukka K. Korpela

15
@ JukkaK.Korpelaこれらのタグは非常に重要です。stackoverflow.com/a/17272444/756329およびhtml5doctor.com/lets-talk-about-semantics
Joseph Hansen

3
問題はこれです:[figures] can be moved to another page or to an appendix without affecting the main flow<figure>そして、<figcaption>キャプション付き画像用の汎用代替品ではありません。それらは数字にのみ適用されます。(たとえば)字幕付きの段落が混在する段階的なハウツーがある場合、画像がhtmlで定義されているのと同じ段落区切りで表示されることが重要な場合があります。したがって、<figure>(私が理解しているように)ここでは適用されません。
Ponkadoodle 2016

これらの線は必ずしも画像の下に図のキャプションを配置するとは限りません。ここに記載されているHTMLはコンテンツを説明していますが、外観はCSSの影響を受けます。
jvriesem

21

CSS

#images{
    text-align:center;
    margin:50px auto; 
}
#images a{
    margin:0px 20px;
    display:inline-block;
    text-decoration:none;
    color:black;
 }

HTML

<div id="images">
    <a href="http://xyz.com/hello">
        <img src="hello.png" width="100px" height="100px">
        <div class="caption">Caption 1</div>
    </a>
    <a href="http://xyz.com/hi">
        <img src="hi.png" width="100px" height="100px"> 
        <div class="caption">Caption 2</div>
    </a>
</div>

フィドルがここにあります。


7
<div style="margin: 0 auto; text-align: center; overflow: hidden;">
  <div style="float: left;">
    <a href="http://xyz.com/hello"><img src="hello.png" width="100px" height="100px"></a>
    caption 1
  </div>
 <div style="float: left;">
   <a href="http://xyz.com/hi"><img src="hi.png" width="100px" height="100px"></a>
   caption 2                      
 </div>
</div>

7

画像を配置します—幅が140pxであるとしましょう—リンクの中に:

<a><img src='image link' style='width: 140px'></a>

次に、キャプションをaに入れ、中央揃えにして画像よりも幅を小さくします。

<a>
  <img src='image link' style='width: 140px'>
  <div style='width: 130px; text-align: center;'>I just love to visit this most beautiful place in all the world.</div>
</a>

次に、リンクタグでリンクのスタイルを設定し、リンクのように見えないようにします。好きな色を付けることができますが、リンクに含まれるテキストの装飾を削除するだけです。

<a style='text-decoration: none; color: orange;'>
  <img src='image link' style='width: 140px'>
  <div style='width: 130px; text-align: center;'>I just love to visit this most beautiful place in all the world.</div>
</a>

画像がキャプションでリンクされた画像をラップして、テキストがキャプションを邪魔にならないようにしました。キャプションはリンクによって画像に関連付けられています。次に例を示します。http//www.alphaeducational.com/p/okay.html


1
のようなブロックタグは、のような<div>インラインタグ内では許可されません<a>- <span>キャプションに使用する必要があります。
mindplay.dk 2015年

@TheAlphaの例では、<div>を<span>で置き換えると完全に失敗します。<div>が必要なようです。
ピエール

@ mindplay.dk aタグのコンテンツモデルは透過的であるため、親タグが許可するすべての子を受け入れることができると思います(インタラクティブコンテンツを除く)。私が間違っている場合は私を修正しますか?学びたいです。 w3.org/TR/html5/text-level-semantics.html#the-a-element
クリスBIER

2

CSSはあなたの友達です。中央タグ(もちろん、これはかなり減価償却されている)も、余分な改行しないスペースも必要ありません。以下に簡単な例を示します。

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>

2

レスポンシブ画像用。図タグ内に画像タグとソースタグを追加できます。

<figure>
  <picture>
    <source media="(min-width: 750px)" srcset="images/image_2x.jpg"/>
    <source media="(min-width: 500px)" srcset="images/image.jpg" />
    <img src="images.jpg" alt="An image">
  </picture>
  <figcaption>Caption goes here</figcaption>
</figure>

0

より意味的に正しく、OPを並べて配置することに関する元の質問に答えるには、次のようにします。

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/


0

<figcaption>HTML5 のタグを使用すると、画像にテキストを入力できます。次に例を示します。

<figcaption>
Your text here
</figcaption>.

次に、CSSを使用して、テキストを画像上に配置する必要があります。


-3
<table>
<tr><td><img ...><td><img ...>
<tr><td>caption1<td>caption2
</table>

必要に応じてスタイルを設定します。


6
私はこれを決してしません。その人は、表形式でコンテンツを表示する方法ではなく、プレゼンテーションのアドバイスを求めています。
マイクコルメンディ2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.