听着,我有个密码:
<figure>
<img src="bunnyrabbit.jpg" width="200" height="150" alt="An image of a bunny rabbit." />
<figcaption>Bunny rabits are cuddly and fluffy creatures with big ears. They eat carrots.</figcaption>
</figure>
如果我不使用任何CSS,figcaption会将图形元素的宽度扩展到200px以上。我该如何防止这种情况?
我知道我可以通过指定figcaption元素的宽度(<figure style="width:200px;">
)来强制figcaption中的文本换行,但我并不真的想对每一张图片都这样做。
6条答案
按热度按时间iibxawm41#
添加这个代码到
<figure>
和<figcaption>
CSS属性帮助我解决了同样的问题。而且,它保留了你的图片和标题的响应。1.添加
display: table;
设置了阶段。1.单独添加
display: table-caption;
会将标题放置在图像顶部,caption-side
属性指定表格标题在bottom
处的位置,top
是默认值。ndh0cuux2#
这将使
figcaption
与img
并排放置:Here's an example。但是我不完全清楚你想要达到什么目的--你在问题中说你希望
figure
保持在200 px的宽度,但随后你又说你希望figcaption
出现在右边,这会使figure
变宽。如果你想要的只是将figcaption
限制在图像的宽度,this should work:rbl8hiat3#
另一种解决方案:使用固有宽度
只需在
figure
元素上设置width: min-content;
DEMO(IE除外)
s71maibg4#
不幸的是,设置图形的宽度而不是使用
max-width: 100%
意味着它在窄的(移动的)设备上不会缩小。也就是说,图像不会是responsive。我求助于插入<br />
来分解长的标题,但我不喜欢它。但这个晦涩的CSS特性似乎对我很有效:figcaption { display: run-in; width: 150px }
这样可以保持图片的响应性,即使标题没有。你可以选择你自己的标题宽度。我还添加了
margin: auto; text-align: center;
来使标题在移动终端上居中。wyyhbhjk5#
这真的让我很困扰,因为我想找到一个答案来适应HTML5的升级,它将成功地取代我原来显示图像和标题的设置-一个有两行的表格(如果没有标题可用,则为一行)。
我的解决方案可能并不适用于所有人,但到目前为止,它似乎在主要浏览器(O,FF,IE,S,C)中运行良好,并在移动的设备上具有响应能力:
这里的想法是
figure
是由img
的宽度推出来的,所以不需要任何方向。这是用来消除
img
底部和figure
底部之间无用的、难看的间隙。现在,该图已经被打开到足以让
img
进入的宽度,figcaption
文本只有有限的空间可以存在。text-align
不是此解决方案正常工作所必需的。此解决方案与
display: table-caption
一样有效,但figcaption
包含在任何可能需要设置的边框或背景值中。zujrkrfu6#
演示:https://codepen.io/kartofelek007/pen/rNZWpjp
你也可以用这个技巧来计算身高:https://codepen.io/kartofelek007/pen/LYQJJPR