Làm thế nào để viết chú thích dưới một hình ảnh?


126

Tôi có hai hình ảnh cần giữ nội tuyến; Tôi muốn viết chú thích dưới mỗi hình ảnh.

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

Làm thế nào tôi có thể thực hiện?


8
@ceejayoz không đề cập đến tất cả những &nbspgì trái ngược với việc nói đặt lề hoặc sử dụng các công cụ bố cục css khác.
jzworkman

Mặc dù điều này về cơ bản đã được trả lời, cách duy nhất tôi tìm thấy để có chú thích phù hợp với chiều rộng của hình ảnh nội tuyến là mã hóa cứng thuộc tính chiều rộng trên trình bao bọc hoặc chính chú thích.
MyNameIsKo

2
@McGarnagle không chỉnh sửa ý nghĩa mã trong bài đăng của người khác. Hình thành là OK (trừ khi nó là python), nhưng tất cả nội dung mã đều quan trọng! Nhờ chỉnh sửa của bạn, bài đăng jxworkmans trông vô nghĩa. Và thực sự, sửa mã sai trong câu hỏi là hoàn toàn vô nghĩa. Điều gì sẽ là điểm của câu trả lời sau đó?
Tomáš Zato - Phục hồi Monica

Câu trả lời:


275

Thẻ hìnhFigcaption :

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

Phải yêu HTML5.


Xem mẫu


1
Mặc dù vậy, bạn sẽ cần một shim HTML5 cho hầu hết IE.
ceejayoz

10
Những thẻ đó không giúp được gì. Chúng chỉ là đánh dấu giả và bạn cần thực hiện tất cả công việc trong CSS (và / hoặc với các thẻ HTML khác). Và bạn cần một hoạt động bổ sung để tạo các phiên bản IE cũ để nhận ra chúng ngay cả dưới dạng thẻ giả. Vì vậy, nó là đơn giản hơn để sử dụng divhoặc span.
Jukka K. Korpela

15
@ JukkaK.Korpela Những thẻ này rất quan trọng. stackoverflow.com/a/17272444/756329html5doctor.com/lets-talk-about-semantics
Joseph Hansen

3
Vấn đề là đây : [figures] can be moved to another page or to an appendix without affecting the main flow. <figure><figcaption>không thay thế mục đích chung cho hình ảnh với chú thích. Họ chỉ áp dụng cho số liệu. Nếu bạn (ví dụ) có cách làm từng bước bao gồm các đoạn được xen kẽ với ảnh có chú thích, điều quan trọng là các hình ảnh được trình bày ở cùng một đoạn ngắt như được định nghĩa trong html. Do đó <figure>sẽ không được áp dụng ở đây (theo tôi hiểu).
Ponkadoodle

Tôi muốn thêm rằng những dòng này không nhất thiết phải đặt chú thích hình dưới một hình ảnh. HTML đưa ra ở đây mô tả nội dung, nhưng ngoại hình bị ảnh hưởng / xác định bởi 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>

Một câu đố ở đây.


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

Đặt hình ảnh - giả sử chiều rộng của nó là 140px - bên trong một liên kết:

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

Tiếp theo, đặt chú thích vào a và cung cấp cho nó một chiều rộng nhỏ hơn hình ảnh của bạn, trong khi căn giữa nó:

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

Tiếp theo, trong thẻ liên kết, hãy tạo kiểu cho liên kết để nó không còn giống như một liên kết. Bạn có thể cung cấp cho nó bất kỳ màu nào bạn muốn, nhưng chỉ cần loại bỏ bất kỳ trang trí văn bản nào mà các liên kết của bạn có thể mang theo.

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

Tôi đã bọc hình ảnh với chú thích trong một liên kết để không có văn bản nào có thể đẩy chú thích ra khỏi đường đi: Chú thích được gắn với hình ảnh bởi liên kết. Đây là một ví dụ: http://www.alphaeducational.com/p/okay.html


1
Chặn các thẻ như <div>không được phép bên trong các thẻ nội tuyến như <a>- bạn nên sử dụng <span>cho chú thích.
mindplay.dk

Việc thay thế <div> bằng <span> thất bại hoàn toàn trong ví dụ của @ TheAlpha. Có vẻ như bạn cần <div>.
Pierre

@ mindplay.dk Tôi nghĩ vì amô hình nội dung của thẻ trong suốt nên nó có thể chấp nhận bất kỳ con nào mà thẻ cha có thể (ngoại trừ nội dung tương tác). Chỉnh sửa nếu tôi sai? Tôi muốn học. w3.org/TR/html5/text-level-semantics.html#the-a-element
Chris Bier

2

CSS là bạn của bạn; không cần thẻ trung tâm (chưa kể nó khá mất giá) cũng như không gian không phá vỡ quá mức. Đây là một ví dụ đơn giản:

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

Đối với hình ảnh đáp ứng. Bạn có thể thêm các thẻ hình ảnh và nguồn trong thẻ hình.

<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

Để chính xác hơn về mặt ngữ nghĩa và trả lời câu hỏi ban đầu của OP về việc sắp xếp chúng cạnh nhau tôi sẽ sử dụng điều này:

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

Các <figcaption>thẻ trong HTML5 cho phép bạn nhập văn bản để hình ảnh của bạn ví dụ:

<figcaption>
Your text here
</figcaption>.

Sau đó, bạn có thể sử dụng CSS để định vị văn bản ở vị trí cần có trên hình ảnh.


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

Phong cách như mong muốn.


6
Tôi sẽ không bao giờ làm điều này. Người đang yêu cầu tư vấn thuyết trình không làm thế nào để hiển thị nội dung ở định dạng bảng.
Mike Kormendy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.