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?


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


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


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.


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

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


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>

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>

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/


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.


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

Gaya seperti yang diinginkan.


6
Saya tidak akan pernah melakukan ini. Orang tersebut meminta saran presentasi bukan bagaimana menampilkan konten dalam format tabel.
Mike Kormendy
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.