CSS图像最大宽度设置为原始图像大小?

Posted

技术标签:

【中文标题】CSS图像最大宽度设置为原始图像大小?【英文标题】:CSS image max-width set to original image size? 【发布时间】:2014-08-03 13:33:51 【问题描述】:

你能做到吗?我让用户将图像上传到宽度为 100% 的容器中,但我不希望图像大于原始大小。非常感谢!

【问题讨论】:

图像自然应该是它的大小。您是否也将图像设置为宽度:100? 没有。你不能。 CSS 无法知道随机图像的实际大小。您需要 javascript 来检测图像大小并缩放图像。 【参考方案1】:

只是不要设置图片的width,只设置max-width

img max-width:100%; height:auto

height:auto 不是必需的,因为auto 是默认设置,但我把它放在那里是为了提醒自己,我希望图像具有其自然比例。)

这个sn-p有两个盒子,一个比图片小,一个比图片大。如您所见,较小框中的图像被缩小,而较大框中的图像具有正常大小。

div border:2px outset green; margin:6px 0
.box1 width:100px; height:70px;
.box2 width:200px; height:100px;
img max-width:100%; height:auto
<div class="box1">
    <img src="https://i.stack.imgur.com/FuQYf.png"  />
</div>
<div class="box2">
    <img src="https://i.stack.imgur.com/FuQYf.png"  />
</div>

【讨论】:

如果有人(像我一样)想知道如何覆盖继承的宽度设置,只需在您将分配给图像的新类中添加 width:auto。 这会将最大宽度设置为容器的大小,而不是图像的原始(或自然)大小。 这不是我阅读 OP 要求的方式。他要求它不要超过原始/自然尺寸,而不是不要超过容器。 @MrLister developer.mozilla.org/en-US/docs/Web/CSS/max-width max-width as a percentage 将最大宽度定义为包含块宽度的百分比 建议用于横向图像,其中宽度是主要因素。它必须为肖像图像设置最大高度。一般来说,选择取决于纵横比 (H/W),但这在运行时是不切实际的。【参考方案2】:

您可以在图像本身的样式标签中设置图像的最大宽度。 然后在样式表中将显示类型设置为“块”,将宽度设置为您想要的容器的任何百分比,并将高度设置为自动。然后添加 margin: 0px auto ,它应该完全居中并且永远不会大于它的原始大小。

如果这些是用户上传的图像并且您正在使用 php,例如,使用 getImageSize() 查找图像宽度并以编程方式将样式标记添加到图像。

【讨论】:

以上是关于CSS图像最大宽度设置为原始图像大小?的主要内容,如果未能解决你的问题,请参考以下文章

如何相对于原始图像大小比设置 UIimageview 宽度

CSS:如何将图像宽度设置为大于容器的 [关闭]

CSS 根据 jQuery 的宽度百分比设置高度

如何在css中动态调整图像大小?

使用具有最大宽度/高度的 ImageMagick 调整大小

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