我花了两天时间试图解决无花果/无花果问题无济于事。
我有一个Django应用程序,用户可以在其中提交图像,我正在使用图形和figcaption标签显示带有附带标题的图像。主要问题是标题宽度超出图片宽度。
我试图找出一种方法让图像保持相同的大小,并且标题相应地在宽度上排列。我也在使用Twitter-Bootstrap。我对所有解决方案持开放态度。任何意见,经验或建议都非常感谢。
更新:这是实际的HTML模板代码和CSS:
<div class="span4 offset2">
{% if story.pic %}
<h2>Image</h2>
<figure width="{{story.pic.width_field}}">
<img class="image"src="{{ story.pic.url }}" width="{{story.pic.width_field}}" alt="some_image_alt_text"/>
{% if story.caption %}
<figcaption>
{{story.caption}}
</figcaption>
{% endif %}
</figure>
{% endif %}
</div>
image {height:auto;}
figure {margin:0; display:table;}
figcaption {display:table-row;
max-width: 30%;
font-weight: bold;}
答案 0 :(得分:9)
figure .image {
width: 100%;
}
figure {
text-align: center;
display: table;
max-width: 30%; /* demo; set some amount (px or %) if you can */
margin: 10px auto; /* not needed unless you want centered */
}
关键是如果可以的话,为max-width
元素上的img
设置某种figure
,那么它将保持它和文本的约束。
首先,这个<figure width="{{story.pic.width_field}}">
应为<figure style="width: {{story.pic.width_field}};">
。
其次,只执行 此css(img
或figcaption
; see fiddle不需要其他内容):
figure {
text-align: center;
margin: 10px auto; /* not needed unless you want centered */
}
带有长文字的小图片仍然会出现问题,as this fiddle shows。为了使其至少看起来干净,您可以检查img
的最小尺寸,如果它太小(例如100px
),则不要在{{width
上设置figure
。 1}}将min-width
设置为img
大小,并将max-width
设置为100px
的阈值,如this fiddle shows。
答案 1 :(得分:4)
此问题的解决方案是使用TABLE和TABLECAPTION。 它只有2行代码。
您可以在网站上看到此解决方案的实时预览: http://www.sandrasen.de/projektgebiete/kienheide/
figure {
display: table;
}
figcaption {
display: table-caption; /* aligns size to the table of the figure
caption-side: bottom /* makes the caption appear underneath the image/figure */
}
答案 2 :(得分:0)
在HTML5中,事情非常简单:
HTML
<figure>
<img src="..." >
<figcaption>Caption 1</figcaption>
</figure>
<figure>
<img src="..." >
<figcaption>Caption 2</figcaption>
</figure>
CSS
figure{
display: inline-block;
}
/* optional, use as required */
figcaption {
max-width: 30%;
caption-side: bottom;
}