我一直在尝试在放置在 article
元素中的一些图像上使用 object-fit
,但它似乎根本不会影响它们。
object-fit
属性的期望值为 cover
,但截至目前,其他值似乎都不起作用。
当我改变它的价值时,它们不会缩小,不会增长,不会……什么都没有。
如果您看到 CodePen,则两行之间有空白,并且图像不会占用所有相同的空间/高度(正如 object-fit: cover
所预期的那样)。
body{
margin: 0 auto; padding: 0;
}
main{
min-height: 70vh;
padding: 0;
}
main > section.posts{
box-sizing: border-box;
margin: 0; padding: 0;
display: flex;
flex-flow: row wrap;
}
main > section.posts > article{
outline: 1px solid red;
width: 22vw;
min-height: 100vh;
margin: 0; padding: 0;
flex-grow: 1;
overflow: hidden;
box-sizing: border-box;
}
main > section.posts > article > img{ /* Our suspect */
object-fit: cover;
}
<!--
Basic structure of this file is
<main>
<section.posts>
<article> (six of them)
<image>
-->
<main>
<section class="posts">
<article>
<img src="http://41.media.tumblr.com/tumblr_m6s6d65lE11qdnz8wo1_400.jpg">
</article>
<article>
<img src="http://41.media.tumblr.com/71c1fe7c899cd048fb961d3c1953411b/tumblr_nj24pvINyW1qzq8p3o1_400.jpg">
</article>
<article>
<img src="http://36.media.tumblr.com/3358cb6ac8eaa0e61dffd53bc1bab93d/tumblr_n92l475hol1qlmppmo1_400.png">
</article>
<article>
<img src="http://36.media.tumblr.com/9ad997ca0385a23a8d82ec919da2392c/tumblr_nwcewbFVAL1s71gzco1_400.jpg">
</article>
<article>
<img src="http://41.media.tumblr.com/tumblr_mbl45xDSwj1qfn79co1_400.jpg">
</article>
<article>
<img src="http://41.media.tumblr.com/1c3718e71a2aa5acaaaf4af654991c91/tumblr_nx6psaH67d1tvh80lo1_400.jpg">
</article>
</section>
</main>
原文由 P3t3r6 发布,翻译遵循 CC BY-SA 4.0 许可协议
object-fit
只影响图片在img
边界内的显示方式。对象拟合
替换元素
这意味着 object-fit 独立于您的
article
元素,因为 object-fit 只关心img
元素的尺寸。这样做的要点是您需要先获取
img
元素以拉伸到这些维度。object-fit
仅影响图片在img
边界内的显示方式。示例代码/演示
问题解答
解决方案 1:更灵活
使用您当前的 HTML 结构,您可以使用下面的代码片段在每个
article
中应用一个额外的 flex。解决方案 2:删除文章元素
或者您可以重组您的 html 以删除
article
元素并调整img
元素。