如何在图像下写标题?


126

我有两个图像需要保持内联;我想在每个图像下写一个标题。

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

虽然基本上已经回答了这一问题,但我发现获得标题以适合嵌入式图像宽度的唯一方法是在包装器或标题本身上硬编码width属性。
MyNameIsKo 2014年

2
@McGarnagle不会编辑别人帖子中的代码含义。格式化是可以的(除非是python,否则可以),但是所有代码内容都很重要!感谢您的编辑,jxworkmans的帖子看起来毫无意义。真的,修复错误的代码的问题完全是胡说八道。那么答案是什么呢?
托马什Zato -恢复莫妮卡

Answers:


275

FigureFigcaption标签:

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

要爱HTML5。


查看样本


1
不过,大多数IE都需要HTML5填充程序。
ceejayoz 2012年

10
这些标签没有任何帮助。它们只是虚拟标记,您需要使用CSS(和/或其他HTML标记)完成所有工作。而且,您还需要执行额外的操作来使IE的旧版本将其识别为虚假标签。因此,使用div或更简单span
Jukka K. Korpela 2012年


3
问题是这样的:[figures] can be moved to another page or to an appendix without affecting the main flow<figure>并且<figcaption>不是带有字幕的图像的通用替代品。它们适用于数字。如果您(例如)具有由段落和带标题的照片混合而成的逐步操作方法,则将图像显示在html中定义的相同段落中断处可能很重要。因此<figure>,不适用于这里(据我了解)。
Ponkadoodle '16

我要补充一点,这些行不一定在图像下方放置图形标题。此处给出的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>
  <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

在@TheAlpha的示例中,用<span>替换<div>完全失败。看起来您需要<div>。
Pierre

@ mindplay.dk我认为,因为a标签的内容模型是透明的,所以它可以接受父标签可以的任何子级(交互式内容除外)。如我错了请纠正我?我想学习。 w3.org/TR/html5/text-level-semantics.html#the-a-element
Chris 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
我永远不会这样做。该人员要求提供演示建议,而不是如何以表格格式显示内容。
Mike Kormendy'4
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.