如何在没有 javascript 的情况下使用最大高度和宽度来灵活调整 css 图像大小,同时保持图像纵横比?

Posted

技术标签:

【中文标题】如何在没有 javascript 的情况下使用最大高度和宽度来灵活调整 css 图像大小,同时保持图像纵横比?【英文标题】:How can I have flexible css image sizing with max height and width while preserving image aspect ratio, without javascript? 【发布时间】:2012-01-23 04:32:54 【问题描述】:

我真的以为这会在堆栈溢出的其他地方出现,但我搜索了很长时间都没有结果。如果我错过了,请原谅我。

我有一组图像需要尽可能大(宽度:容器元素的 100%),只要容器不会因为容器宽度而变得太宽或图像太高。需要保留长宽比。

我认为我可以这样做

img  width: 100%; height: auto; max-width: 500px; max-height: 250px; 

这个想法是,如果图像达到给定宽度和纵横比的最大宽度或最大高度,它将不再增长。实际上,这会导致图像宽度尽可能宽,但当它太高时会破坏纵横比(将图像压缩到最大高度),而不是阻止图像变宽。

有没有更好的方法来解决这个问题?如果可能的话,我想避免使用 javascript。我的测试在 Firefox 9 中。

【问题讨论】:

这就是我担心的;谢谢,搅拌机 【参考方案1】:

有点旧,但使用顶部或底部填充将保持您的纵横比。除以高度/宽度并将该百分比应用于填充顶部或底部。有时它会变得很棘手,但它确实有效。

这是一篇关于它的好文章: http://voormedia.com/blog/2012/11/responsive-background-images-with-fixed-or-fluid-aspect-ratios

【讨论】:

【参考方案2】:

您可以使用媒体查询来创建固定图像大小的阶梯,然后像这样:

@media screen and (min-width: 701px) and (max-width: 900px) 
    img 
        width:  800px;
        height: auto;
    


@media screen and (min-width: 901px) and (max-width: 1100px) 
    img 
        width:  1000px;
        height: auto;
    

不是很漂亮,但很有效。

【讨论】:

谢谢,这不是我所需要的,但我想这看起来最接近我在这个问题上得到的答案。

以上是关于如何在没有 javascript 的情况下使用最大高度和宽度来灵活调整 css 图像大小,同时保持图像纵横比?的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有 Javascript 的情况下将焦点设置到页面顶部?

如何在没有验证码的情况下保护联系表格?

如何在没有远程模块的情况下最大化和最小化电子窗口

如何使用 JavaScript 在没有提交按钮的情况下提交“文件”输入?

如何在没有突变的情况下使用 javascript Map

如何在没有客户端 JavaScript 的情况下使用 JSON 数据呈现静态 HTML?