Bagaimana cara menulis teks di bawah gambar?

126

Saya memiliki dua gambar yang perlu dijaga tetap sejajar; Saya ingin menulis teks di bawah setiap gambar.

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

Bagaimana saya bisa menerapkan?

Samrat Mazumdar
sumber
8
@ceejayoz belum lagi semua yang &nbspmengatakan pengaturan margin, atau menggunakan alat tata letak css lainnya.
jzworkman
Meskipun ini pada dasarnya telah dijawab, satu-satunya cara saya menemukan mendapatkan keterangan agar sesuai dengan lebar gambar sebaris adalah dengan hard-code properti lebar pada pembungkus atau keterangan itu sendiri.
MyNameIsKo
2
@McGarnagle tidak mengedit arti kode di pos orang lain. Memformat adalah OK (baik kecuali itu python), tetapi semua isi kode penting! Berkat hasil edit Anda, posting jxworkmans tampak tidak berarti. Dan benar-benar, memperbaiki kode yang salah di pertanyaan adalah omong kosong. Apa gunanya jawaban itu?
Tomáš Zato - Reinstate Monica

Jawaban:

275

Gambar dan figcaption tag:

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

Harus cinta HTML5.


Lihat sampel

McGarnagle
sumber
1
Anda akan memerlukan shim HTML5 untuk sebagian besar IE.
ceejayoz
10
Tag-tag itu tidak membantu dengan cara apa pun. Mereka hanya markup dummy, dan Anda perlu melakukan semua pekerjaan di CSS (dan / atau dengan tag HTML lainnya). Dan Anda perlu operasi ekstra untuk membuat versi IE lama untuk mengenalinya bahkan sebagai tag tiruan. Jadi lebih mudah untuk menggunakan divatau span.
Jukka K. Korpela
15
@ JukkaK.Korpela Tag-tag ini sangat penting. stackoverflow.com/a/17272444/756329 dan html5doctor.com/lets-talk-about-semantics
Joseph Hansen
3
Masalahnya adalah ini: [figures] can be moved to another page or to an appendix without affecting the main flow. <figure>dan <figcaption>bukan pengganti tujuan umum untuk gambar dengan teks. Mereka hanya berlaku untuk angka. Jika Anda (misalnya) memiliki langkah-demi-langkah bagaimana-yang terdiri dari paragraf yang dicampur dengan foto-foto teks, mungkin penting bahwa gambar disajikan pada jeda paragraf yang sama seperti yang didefinisikan dalam html. Karenanya <figure>tidak akan berlaku di sini (seperti yang saya mengerti).
Ponkadoodle
Saya akan menambahkan bahwa garis-garis ini tidak selalu menempatkan keterangan gambar di bawah gambar. HTML yang diberikan di sini menjelaskan konten, tetapi tampilannya dipengaruhi / ditentukan oleh 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>

Biola ada di sini.

Alfa
sumber
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>
Greg B
sumber
7

Masukkan gambar - misalkan lebarnya 140px - di dalam tautan:

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

Selanjutnya, letakkan teks dalam dan beri lebar kurang dari gambar Anda, sambil menempatkannya di tengah:

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

Selanjutnya, dalam tag tautan, buat style tautan sehingga tidak lagi terlihat seperti tautan. Anda dapat memberikan warna apa pun yang Anda inginkan, tetapi cukup hapus hiasan teks apa pun yang mungkin dibawa oleh tautan Anda.

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

Saya membungkus gambar dengan caption-nya di tautan sehingga tidak ada teks yang bisa mendorong caption keluar dari jalan: Teks terikat ke gambar oleh tautan. Berikut ini contohnya: http://www.alphaedukasi.com/p/okay.html

Susie
sumber
1
Tag blok suka <div>tidak diizinkan di dalam tag inline seperti <a>- Anda harus menggunakan <span>teks.
mindplay.dk
Mengganti <div> dengan <span> gagal total dalam contoh @ TheAlpha. Sepertinya Anda perlu <div>.
Pierre
@ mindplay.dk Saya pikir karena amodel konten tag transparan, ia dapat menerima setiap anak yang dapat diberikan tag induk (kecuali untuk konten interaktif). Perbaiki saya jika saya salah? Saya ingin belajar. w3.org/TR/html5/text-level-semantics.html#the-a-element
Chris Bier
2

CSS adalah teman Anda; tidak perlu untuk tag tengah (belum lagi cukup terdepresiasi) atau ruang non-breaking yang berlebihan. Ini adalah contoh sederhana:

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>
faino
sumber
2

Untuk gambar yang responsif. Anda dapat menambahkan gambar dan tag sumber dalam tag gambar.

<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>
Pat M
sumber
0

Untuk lebih benar secara semantik dan menjawab pertanyaan awal OP tentang menyelaraskannya, saya akan menggunakan ini:

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/

c7borg
sumber
0

The <figcaption>tag di HTML5 memungkinkan Anda untuk memasukkan teks ke gambar Anda misalnya:

<figcaption>
Your text here
</figcaption>.

Anda kemudian dapat menggunakan CSS untuk memposisikan teks di tempat yang seharusnya pada gambar.

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

Gaya seperti yang diinginkan.

Jukka K. Korpela
sumber
6
Saya tidak akan pernah melakukan ini. Orang tersebut meminta saran presentasi bukan bagaimana menampilkan konten dalam format tabel.
Mike Kormendy