说我有以下HTML:
<figure>
<img alt="Sun" src="sun.gif" width="256" height="256" />
<figcaption>The Sun - a sinister and destructive force. Image from
the SOHO research facility.</figcaption>
</figure>
Run Code Online (Sandbox Code Playgroud)
如果我希望文本换行到图像的宽度,我需要这个CSS:
figure {
display: table;
width: 1px;
}
Run Code Online (Sandbox Code Playgroud)
如果我希望图像"响应" - 也就是说,不比视口大 - 我也需要这个CSS:
img {
max-width: 100%;
}
Run Code Online (Sandbox Code Playgroud)
但结合这两个导致一个可怕的混乱!现在,img父母的宽度设置明确,max-width导致整个数字真的很小(虽然并不完全1px).
因此,它是能够使用CSS(2或3),以实现二者的图像标题缠绕以不宽于该图像和图像不大于视口宽?
Che*_*Pez 34
老问题,但我遇到了同样的问题,并能拿出一个相当巧妙的解决办法,灵感来自此.
HTML:
<figure>
<img src="http://www.placehold.it/300x150" alt="" />
<figcaption>Make me as long as you like</figcaption>
</figure>?
Run Code Online (Sandbox Code Playgroud)
CSS:
figure {
background-color: #fff;
padding: 5px;
font-size: .875em;
display: table;
}
figure img {
display: block;
width: 100%;
}
figcaption {
display: table-caption;
caption-side: bottom;
background: #fff;
padding: 0 5px 5px;
}?
Run Code Online (Sandbox Code Playgroud)
这可以确保figcaption不超过宽度figure,同时允许您保持max-width图像.适用于所有优秀的浏览器和IE8 +.
有一个Firefox错误阻止max-width在设置的元素内工作display: table.因此,不是在图像上使用max-width,而是将其宽度设置为100%意味着它可以跨浏览器工作.图形的宽度将是图像的原始宽度,除非该宽度以某种其他方式受到限制.